从代码引用CMAKE变量

时间:2016-10-24 12:56:04

标签: c++ cmake

我在Windows上使用CMAKE 3.4.3,我想要做的是在CMAKE中设置路径并尝试在我的C ++文件中引用它。

我尝试的内容如下:

在CMakeLists.txt文件中

ADD_DEFINITIONS(-DNV12_2_ARGB_PTX_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ptx")

现在,我尝试从我的C ++文件中引用它,如下所示:

#ifdef NV12_2_ARGB_PTX_DIR
    #define PTX_DIR D_NV12_2_ARGB_PTX_DIR
#endif

当我尝试将其称为:

std::cout << PTX_DIR << std::endl;

我收到错误:

'C:/Users/Luca/project/src/lib/ptx': No such file or directory  

另外,Visual studio intellisense抱怨:

IntelliSense: identifier "PTX_DIR" is undefined 

不确定为什么要使用此变量打开文件...

1 个答案:

答案 0 :(得分:9)

问题在于您使用add_definitions。您有效地将${CMAKE_CURRENT_SOURCE_DIR}/ptx的值作为附加参数传递给编译器的命令行,编译器可能会将其解释为应编译的源文件。检查调用的完整命令行以确定。

您可能打算这样做:

add_definitions(-DNV12_2_ARGB_PTX_DIR="${CMAKE_CURRENT_SOURCE_DIR}/ptx")

请注意,您可能必须使用转义引号来将它们一直提升到C ++。或者,您可以使用configure_file()