我正在尝试做类似的事情
cmake -DUSE_FILES_FOR_INPUT=ON ..
Run Code Online (Sandbox Code Playgroud)
然后开始make
编译我的文件-DUSE_FILES_FOR_INPUT=ON
。但我没有得到它的=ON
价值。似乎它应该写入 flags.make 文件,但它不是:
$ grep USE_FILES_FOR_INPUT source/CMakeFiles/myprogram.dir/flags.make
CXX_DEFINES = -DUSE_FILES_FOR_INPUT
Run Code Online (Sandbox Code Playgroud)
如果我手动更改该文件,-DUSE_FILES_FOR_INPUT=ON
则一切正常。我怎样才能让 cmake 在 中添加值flags.make
?
我需要做的事情的另一种方法:我正在使用的变量的类型为 BOOL,因此它足以获得
CXX_DEFINES = -DUSE_FILES_FOR_INPUT
我什么时候做cmake -DUSE_FILES_FOR_INPUT=ON ..
,
CXX_DEFINES =
什么时候做cmake -DUSE_FILES_FOR_INPUT=OFF ..
这可能吗?
这是一个小演示,
// demo.cpp
#include <iostream>
using namespace std;
int main()
{
#ifdef USE_FILES_FOR_INPUT
cout << "Using files.." << endl;
#else
cout << "Not using files.." << endl;
#endif
return 0;
}
Run Code Online (Sandbox Code Playgroud)
CMakeLists.txt,
cmake_minimum_required(VERSION 3.0)
add_executable(demo demo.cpp)
if (USE_FILES_FOR_INPUT)
add_definitions(-DUSE_FILES_FOR_INPUT)
endif()
Run Code Online (Sandbox Code Playgroud)
和一个样本输出,
baris$ cmake . && make && ./demo
<...>
Not using files..
baris$ cmake -DUSE_FILES_FOR_INPUT=ON . && make && ./demo
<...>
Using files..
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3935 次 |
最近记录: |