我在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
不确定为什么要使用此变量打开文件...
答案 0 :(得分:9)
问题在于您使用add_definitions
。您有效地将${CMAKE_CURRENT_SOURCE_DIR}/ptx
的值作为附加参数传递给编译器的命令行,编译器可能会将其解释为应编译的源文件。检查调用的完整命令行以确定。
您可能打算这样做:
add_definitions(-DNV12_2_ARGB_PTX_DIR="${CMAKE_CURRENT_SOURCE_DIR}/ptx")
请注意,您可能必须使用转义引号来将它们一直提升到C ++。或者,您可以使用configure_file()
。