[C语言] keil5能不能用宏定义来控制编译哪些源文件?

[复制链接]
9040|10
 楼主| djz1992 发表于 2021-8-24 16:20 | 显示全部楼层 |阅读模式
如题,最近把工程的底层移植了好几个mcu,应用层通用,想要通过配置文件宏定义,来选择芯片,控制编译的库和驱动源文件。可以用keil的分支,以及build target范围,但是总得配置感觉很烦。
能不能用宏定义来实现呢?
ayb_ice 发表于 2021-8-24 16:57 | 显示全部楼层
当然可以,这不是最基本的吗
li880wert 发表于 2021-8-25 11:45 | 显示全部楼层
要配置全局宏,不然就歇菜了,
waaini 发表于 2021-8-25 12:04 | 显示全部楼层
keil支持头文件宏定义可视化,可以去看看相关的模板
 楼主| djz1992 发表于 2021-8-26 14:45 | 显示全部楼层
ayb_ice 发表于 2021-8-24 16:57
当然可以,这不是最基本的吗

怎么搞?两种芯片的标准库文件都在工程里,编译的时候会报错
 楼主| djz1992 发表于 2021-8-26 14:45 | 显示全部楼层
li880wert 发表于 2021-8-25 11:45
要配置全局宏,不然就歇菜了,

全局宏可以的,关键是每种芯片的库文件,怎么选择编译哪一种。
在每个c文件头部都加ifdef?
 楼主| djz1992 发表于 2021-8-26 14:46 | 显示全部楼层
waaini 发表于 2021-8-25 12:04
keil支持头文件宏定义可视化,可以去看看相关的模板

这个已经实现
 楼主| djz1992 发表于 2021-8-26 15:17 | 显示全部楼层
ayb_ice 发表于 2021-8-24 16:57
当然可以,这不是最基本的吗

就像这样的,现在是通过分支和keil的配置来实现选哪些文件进行编译。如何用改变宏来自动选择编译的文件呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
xinyue_z 发表于 2021-8-26 15:34 | 显示全部楼层
在keil中通过菜单project->manage->project items 添加一个project targets,然后在两个targets中选择不同的器件就可以了
至于编译哪些文件就要通过建立全局宏,在project->options for...的c/C++页签,第一行就是,define,添加你的宏,然后在对应的targets中需要编译的文件开头增加#ifdef XXXX   文件结尾添加#endif就可以了
 楼主| djz1992 发表于 2021-8-26 15:59 | 显示全部楼层
xinyue_z 发表于 2021-8-26 15:34
在keil中通过菜单project->manage->project items 添加一个project targets,然后在两个targets中选择不同 ...

这工作量,还不如选择item,然后右击option里设置include in target buid
玥月 发表于 2021-8-27 08:26 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:人生苦短,冬日苦长,正是青葱,却无骄阳

115

主题

620

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部