请问用keil怎么像makefile那样选择哪些文件进行编译?

zenmedoucunzaile 2010-11-03 08:05:34
因为设备有多种不同的型号的硬件,所以就有不同的驱动,我想在编译的时候,像在linux下的makeile那样,自己写一个编译连接的东西,来控制我哪些文件进行编译链接,不知道在keil下有没有这样的方法。希望大侠们提供思路啊。。。。
...全文
954 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zenmedoucunzaile 2010-11-06
  • 打赏
  • 举报
回复
多谢你这么详细的说明,不过,我现在用的就是第三种方法,在源代码里有太多的宏定义,看起来影响流畅性。





[Quote=引用 7 楼 jianle1000 的回复:]

有以下3种方法参考:

1、分开建target,每个target一个项目,创建target时,包含所需的工程文件编译即可。
缺点:项目多时,创建target比较麻烦。
优点:比较不容易出错,因为工程文件较独立,其它target修改时,不会影响到该target。
2、使用条件编译,#define + #if .
编写程序时,用以下方法:
#define xx_……
[/Quote]
jianle1000 2010-11-05
  • 打赏
  • 举报
回复
有以下3种方法参考:

1、分开建target,每个target一个项目,创建target时,包含所需的工程文件编译即可。
缺点:项目多时,创建target比较麻烦。
优点:比较不容易出错,因为工程文件较独立,其它target修改时,不会影响到该target。
2、使用条件编译,#define + #if .
编写程序时,用以下方法:
#define xx_driver 1
#define yy_driver 2

#if DRIVER == xx_driver
....
#elif DRIVER == yy_driver
....
#endif

然后在Options for target 中修改C51选项卡下的 define即可。
例如:DRIVER = yy_driver ,则编译时,就会执行条件编译DRIVER == yy_driver。
此方法仅修改KEILC中的配置,不会修改到source code.

3、与方法2类似,新建一个driver.h文件管理驱动。
#define xx_driver 1
#define yy_driver 2
#define DRIVER yy_driver

#if DRIVER == xx_driver
....
#elif DRIVER == yy_driver
....
#endif

以上方法可以结合使用,相信足够你用了。
Great_Bug 2010-11-04
  • 打赏
  • 举报
回复
Project->Manage命令允许你在项目里面增加Target.
可以从菜单里面选这个命令,也可在目标上用右键.....
lbing7 2010-11-04
  • 打赏
  • 举报
回复
用宏#ifdef进行选择
wackestar 2010-11-04
  • 打赏
  • 举报
回复
好你没有make.exe 所以不能用make来编写。
但你可以考虑用批处理的方式来解决。但我只知道这样可以。不知道应该怎么来写这个批处理。
zenmedoucunzaile 2010-11-04
  • 打赏
  • 举报
回复
这么说来,是没有那种方法了。。。
DISINHUI 2010-11-03
  • 打赏
  • 举报
回复
或者用伪指令进行条件编译
DISINHUI 2010-11-03
  • 打赏
  • 举报
回复
你只要将需要编译的加入工程文件即可,不需要编译的移除工程即可。

27,515

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧