从代码中引用CMAKE变量
Referring to a CMAKE variable from code
我在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()
。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- cmake更新缓存的变量
- CMake 找不到变量或目录
- 我应该如何在没有变量的情况下将相同的参数传递给 CMAKE 中的多个目标?
- 子目录之间的 CMAKE 共享变量
- CMake 中的路径变量
- 如何一次删除"cmake -D"定义的所有变量?
- CMake 看不到SDL2_PATH环境变量 (Windows)
- cmake没有定义变量
- 为什么 CMAKE 找不到这些变量?
- 此CMAKE错误意味着什么?我的变量设置为未发现
- CMake ADD_LIBRARY函数的编译器标志的哪个变量?
- CMake <PROJECT-NAME>_SOURCE_DIR 变量范围
- CMake 错误:找不到变量.ACE_INCLUDE_DIR(高级)
- 无法使用 CMake 变量PROJECT_SOURCE_DIR定义静态库的绝对路径
- CMake未命中Qt5的QT_DEFINITIONS变量
- 从代码中引用CMAKE变量
- 在KDevelop中添加CMAKE变量到项目中
- 如何在c++源代码中读取CMake变量
- cmake变量和cmake参数的区别