从代码中引用CMAKE变量

Referring to a CMAKE variable from code

本文关键字:CMAKE 变量 引用 代码      更新时间:2023-10-16

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

我的尝试如下:

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: 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()