我正在使用多年前其他人创建的400行Linux makefile对多平台C++项目进行微小的更改.
makefile中的两行使用-dndebug(小写)作为g ++的命令行参数.
我认为目的是定义ndebug符号,但是当它是小写时,参数甚至可以做任何事情吗?
我对g ++和make的知识很少,但是,通过下面链接的页面,我认为论证需要大写才能工作.
http://gcc.gnu.org/onlinedocs/gcc/Preprocessor-Options.html
它很容易测试:
$ cat test.cpp
#include <iostream>
int main()
{
#ifdef TEST_DEFINE
std::cout << "defined" << std::endl;
#endif
return 0;
}
$ g++ -o 1 -DTEST_DEFINE test.cpp
$ ./1
defined
$ g++ -o 2 -dTEST_DEFINE test.cpp
cc1plus: warning: unrecognized gcc debugging option: T [enabled by default]
cc1plus: warning: unrecognized gcc debugging option: E [enabled by default]
cc1plus: warning: unrecognized gcc debugging option: S [enabled by default]
cc1plus: warning: unrecognized gcc debugging option: T [enabled by default]
cc1plus: warning: unrecognized gcc debugging option: _ [enabled by default]
cc1plus: warning: unrecognized gcc debugging option: E [enabled by default]
cc1plus: warning: unrecognized gcc debugging option: F [enabled by default]
cc1plus: warning: unrecognized gcc debugging option: E [enabled by default]
$ ./2
$
Run Code Online (Sandbox Code Playgroud)
因此,您可以看到该-d选项实际上会导致编译器警告,因此它看起来像是-D预期的.
| 归档时间: |
|
| 查看次数: |
13813 次 |
| 最近记录: |