首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用GNU瞄准多个嵌入式硬件平台的方法

用GNU瞄准多个嵌入式硬件平台的方法
EN

Stack Overflow用户
提问于 2017-08-08 19:28:37
回答 1查看 274关注 0票数 2

如何确保为一个硬件目标编译的对象文件不会用于需要不同编译的不同硬件目标?

在学习嵌入式开发时,我正在使用GNU ARM嵌入式工具链。我已经有了几个开发板(包括STM32F0和STM32F4处理器),并计划在将来制作自己的开发板。我希望使用一个通用的软件存储库进行几次硬件迭代。

显然,我的Makefile中有多个目标,为每个平台调用适当的定义和编译器标志,或者为所有平台一次构建一个make all。据我所知,make是一个增量构建系统,只有在源文件被更改时才重新编译目标代码(*.o)文件,如果我使用了不同的定义和选项,它将不会重新编译,并且错误的对象代码将被传递给链接器。

在不同目标之间切换时,我似乎可以很努力地使用make clean,但这将依赖于人工操作,如果我忘记了可能会产生错误的构建,并且不能用于为各自的硬件生成多个二进制文件的make all

编辑注释:每反馈意见,我已经做了简短和重新安排,以使问题更加明确和客观。我不是一般性地问如何使用Make,而是询问如何防止mylib.o被编译为STM32F0,然后在STM32F4的构建中被重用。

我对其他工具很好奇,欢迎在评论中进行讨论,但这个问题是针对GNU Make的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-09 07:56:34

为了避免在目标之间进行干净的构建,每个目标都必须有单独的构建目录,以便目标依赖关系是独立的,并且使用适当的工具链和构建开关等来具体生成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45576601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档