当前位置: 首页 > news >正文

移植的本质是什么

       有断时间我就在想,为什么freertos,lvgl等等的移植都是把库文件放进来,直接点击编译,然后把bug都处理完成就移植成功了,为什么呢?

明明我一个函数都没调用,为什么会有一堆错误,莫名其妙又能修改好,就移植成功了。

这里涉及到一个知识,在 C/C++ 中,编译器会将每个源文件编译为目标文件(.o.obj),然后链接器会将这些目标文件和库文件链接成最终的可执行文件。当你添加了一个库(比如 LVGL 或 FreeRTOS)到项目中,即便你没有显式调用库中的函数,编译器和链接器仍然会处理该库中的代码,尤其是当库中有全局变量、宏或初始化代码时,编译器和链接器可能会自动识别出某些依赖。

    意思你不进行调用,编译器也会把放进来的文件进行包含关系的依赖排查!!!

    所以,所谓的移植成功,就把库文件包含进来,单纯的编译就是来排除他们直接各种全局变量、宏或初始化的依赖关系,移植成功就是把这些依赖关系处理成功,也就是所谓的跑通!!

相关文章:

  • UE5 C++项目实现单例
  • Java泛型深度解析与电商场景应用
  • ExtraMAME:复古游戏的快乐“时光机”
  • Github 2025-05-06Python开源项目日报 Top10
  • Spring AI 与大语言模型工具调用机制详细笔记
  • 昇腾Atlas 200I DK A2 开发者套件无法上网问题的解决
  • Vision-Language Models (VLMs) 视觉语言模型的技术背景、应用场景和商业前景(Grok3 DeepSearch模式回答)
  • OpenCV 图形API(77)图像与通道拼接函数-----对图像进行几何变换函数remap()
  • 【愚公系列】《Manus极简入门》022-艺术创作顾问:“艺术灵感使者”
  • Pycharm(十九)深度学习
  • Android SDK 开发中的 AAR 与 JAR 区别详解
  • 爬虫程序中如何添加异常处理?
  • FPGA设计如何快速入门?(内附学习视频)
  • 【Crypto】第四届SQCTF-Crypto全解
  • tinyrenderer笔记(中)
  • SpringBoot中JWT详解,底层原理及生成验证实例。
  • Kafka与RocketMQ在事务消息实现上的区别是什么?
  • Transformer-LSTM混合模型在时序回归中的完整流程研究
  • 2025年01月09日德美医疗前端面试
  • Transformer 与 LSTM 在时序回归中的实践与优化
  • 巴基斯坦宣布关闭全国空域48小时
  • 习近平致电祝贺默茨当选德国联邦总理
  • 中俄合拍电影《红丝绸》将于今年9月在中国上映
  • IPO周报|节后首批3只新股本周申购,色谱设备龙头来了
  • 儿童文学作家周晴病逝,享年57岁
  • 解锁川北底色密码,“文化三地”志愿宣讲员招募计划启动报名