我在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
不确定为什么要使用此变量打开文件...
最佳答案
问题是您使用了add_definitions
。您实际上是在编译器的命令行中将${CMAKE_CURRENT_SOURCE_DIR}/ptx
的值作为附加参数传递,编译器可能会将其解释为应编译的源文件。确保已调用完整的命令行。
您可能打算这样做:
add_definitions(-DNV12_2_ARGB_PTX_DIR="${CMAKE_CURRENT_SOURCE_DIR}/ptx")
请注意,您可能必须绕开引号,以使它们一直下降到C++。或者,您可以使用
configure_file()
。关于c++ - 从代码中引用CMAKE变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40219043/