打印
[C语言]

keil5能不能用宏定义来控制编译哪些源文件?

[复制链接]
8721|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
djz1992|  楼主 | 2021-8-24 16:20 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2021-8-24 16:57 | 只看该作者
当然可以,这不是最基本的吗

使用特权

评论回复
板凳
li880wert| | 2021-8-25 11:45 | 只看该作者
要配置全局宏,不然就歇菜了,

使用特权

评论回复
地板
waaini| | 2021-8-25 12:04 | 只看该作者
keil支持头文件宏定义可视化,可以去看看相关的模板

使用特权

评论回复
5
djz1992|  楼主 | 2021-8-26 14:45 | 只看该作者
ayb_ice 发表于 2021-8-24 16:57
当然可以,这不是最基本的吗

怎么搞?两种芯片的标准库文件都在工程里,编译的时候会报错

使用特权

评论回复
6
djz1992|  楼主 | 2021-8-26 14:45 | 只看该作者
li880wert 发表于 2021-8-25 11:45
要配置全局宏,不然就歇菜了,

全局宏可以的,关键是每种芯片的库文件,怎么选择编译哪一种。
在每个c文件头部都加ifdef?

使用特权

评论回复
7
djz1992|  楼主 | 2021-8-26 14:46 | 只看该作者
waaini 发表于 2021-8-25 12:04
keil支持头文件宏定义可视化,可以去看看相关的模板

这个已经实现

使用特权

评论回复
8
djz1992|  楼主 | 2021-8-26 15:17 | 只看该作者
ayb_ice 发表于 2021-8-24 16:57
当然可以,这不是最基本的吗

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

使用特权

评论回复
9
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就可以了

使用特权

评论回复
10
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

使用特权

评论回复
11
玥月| | 2021-8-27 08:26 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

115

主题

620

帖子

5

粉丝