您的位置:首页 > 其它

让我们来嚼makefile---make给makefile内部变量赋值

2014-06-10 09:09 267 查看
场景:

一般程序都会有两个版本,针对出现问题需要定位的调试的版本和面向用户的发布的版本,这两个版本在代码级别上很大的区别在于是否把#ifdef DEBUG #endif编译进入二进制文件当中,而相对于makefile来说,就是在命令行里面加或者不加-D DEBUG的问题。例子: gcc -g -o main test_macro.c-D DEBUG 这个会把#ifdef和#endif之间的内容编译进去,如果这里面的内容是日志,错误信息的话,方便我们定位问题和解决问题。现在就会有两种方案去编译调试和发布版本,
一种是在makefile里面进行删除-D DEBUG 编译生成发布版本,增加-D DEBUG编译生成调试版本,这样会显得我们开发人员的智商有待提高;更好的一种方法是在makefile内部定义一个变量usedebug=0, 根据变量usedebug的值进行不同的编译命令, 然后再由make 命令在外部进行设置usedebug的值就可以生成不同的编译版本。

解决方案:

执行命令 make useDebug=1; make useDebug=0; 就可以执行不同的编译命令,生成不同的版本了。

需要注意的是: make useDebug=1 等号两边不能有空格,否则会报错的。还有一个ifeq else endif控制语句前面都不需要tab键,在一行的开始处写就是,否则也会报错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: