我一直致力于将 Meson 构建系统用于嵌入式项目。由于我在嵌入式平台上工作,因此我编写了一个自定义链接器脚本以及对链接器的调用。直到我尝试链接newlib
到我的项目,当我开始遇到链接问题时,我才遇到任何问题。就在我让它工作之前,最后一个错误是 undefined reference to main
我清楚地知道在项目中。
出于偶然,我尝试添加-mcpu=cortex-m4
到我的链接器调用(我gcc
用来链接,我被告知这是非常典型的而不是直接调用ld
)。有效!现在,我唯一的问题是“为什么”?
也许我错过了有关链接过程实际工作方式的一些信息,但考虑到我只是生成一个 ELF 文件,我认为为链接器指定 CPU 架构并不重要。这是一newlib
件事,还是gcc
只是在幕后为我做了我以前从未见过的魔术?
供参考,这是我的项目(不完整)