Chinaunix首页 | 论坛 | 博客
  • 博客访问: 77390
  • 博文数量: 44
  • 博客积分: 2021
  • 博客等级: 大尉
  • 技术积分: 500
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-03 10:12
文章分类
文章存档

2011年(1)

2010年(9)

2009年(34)

我的朋友

分类: LINUX

2009-03-03 11:02:41

条件编译的应用

只编写一套代码,既能用于PC环境又能用于嵌入式环境,工作之一在.c源程序中加入

条件编译语句,工作之二用两个不同的Makefile文件来生成不同环境下的目标文件。

比如动态链接库.c程序中的库函数定义采用如下格式:

#ifdef _PC_VERSION

用于PC环境的代码

#else

用于嵌入式环境的代码

#endif

然后编写两个Makefile文件,分别命名为makefile_pc,makefile_dev.
下面列出这两个makefile的区别之处:

%.o : %.c
        arm-linux-gcc -c $?

libmy.so : $(TGT)
        arm-linux-gcc -shared -o $@ $(TGT)

%.o : %.c
        gcc -c -D_PC_VERSION $?

libmy.so : $(TGT)
        gcc -shared -o $@ $(TGT)

最后用make -f makefile_pc或make -f makefile_dev生成不同环境下的目标代码.
对于其中的伪目标,比如clean,则make clean -f makefile_pc即可

http://blog.ednchina.com/ramonatulip/16595/message.aspx

阅读(618) | 评论(0) | 转发(0) |
0

上一篇:GCC精彩之旅(转)

下一篇:考研经验

给主人留下些什么吧!~~