当前位置: 技术问答>linux和unix
如何在Makefile中定义宏进行条件编译?
来源: 互联网 发布时间:2015-09-03
本文导语: 小弟为了提高程序的可移植性,对源文件的一部分内容定义了宏(例如:LINUX宏),准备进行条件编译。可是怎样才能在Makefile中定义这个宏(如:LINUX),来支持条件编译呢?请高手指点,谢谢。 | ...
小弟为了提高程序的可移植性,对源文件的一部分内容定义了宏(例如:LINUX宏),准备进行条件编译。可是怎样才能在Makefile中定义这个宏(如:LINUX),来支持条件编译呢?请高手指点,谢谢。
|
在源代码里面如果这样是定义的:
#ifdef MACRONAME
//可选代码
#endif
那在makefile里面
gcc -D MACRONAME=MACRODEF
或者
gcc -D MACRONAME
这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。
不知道我对你的问题的理解对不对。
#ifdef MACRONAME
//可选代码
#endif
那在makefile里面
gcc -D MACRONAME=MACRODEF
或者
gcc -D MACRONAME
这样就定义了预处理宏,编译的时候可选代码就会被编译进去了。
不知道我对你的问题的理解对不对。
|
你可以借助BASH SHELL强大的字符串处理能力来实现啊!
比如你可以将你想定义的“宏”放在makefile.include中,然后将其赋值,而在makefile中加入include makefile.include一行,在其后需要进行条件预编译时进行字符串比较来实现啊!
比如你可以将你想定义的“宏”放在makefile.include中,然后将其赋值,而在makefile中加入include makefile.include一行,在其后需要进行条件预编译时进行字符串比较来实现啊!