我想在我的C++代码中使用我的CMakeLists.txt中声明的值.我试过这样做:
ADD_DEFINITIONS( -D_MYVAR=1 )
Run Code Online (Sandbox Code Playgroud)
和
#if -D_MYVAR == 1
#define var "someone"
#else
#define var "nobody"
#endif
int main(){
std::cout << "hello" << var << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我不明白为什么.也许我没有正确使用ADD_DEFINITIONS ......
理想情况下,我希望做到这样的事情:
ADD_DEFINITIONS( -D_MYVAR=\"someone\" )
Run Code Online (Sandbox Code Playgroud)
和
#define var D_MYVAR
int main(){
std::cout << "hello" << var << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
可能吗 ?
谢谢 !
小智 7
add_definitions ( -DVARNAME=... )
Run Code Online (Sandbox Code Playgroud)
是使用add_definitions的正确方法.
要检查常数,请使用
#ifdef VARNAME
...
#endif
Run Code Online (Sandbox Code Playgroud)
感谢???????
他的解决方案适用于我的第一个问题,我可以做到:
CMakeLists.txt:
ADD_DEFINITIONS( -D_VAR=\"myValue\" )
Run Code Online (Sandbox Code Playgroud)
主.cpp:
#include <iostream>
#ifdef _VAR
#define TXT _VAR
#else
#define TXT "nobody"
#endif
int main(){
std::cout << "hello " << TXT << " !" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3580 次 |
| 最近记录: |