我在 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/