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

10-11 22:38