分类: 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即可