【cmake变量笔记】

1. 查看当前CMAKE中所有的变量的值的代码

get_cmake_property(_variableNames VARIABLES)
foreach(_variableName ${_variableNames})
    message(STATUS "${_variableName}=${${_variableName}}")
endforeach()

CMAKE_CURRENT_LIST_DIR
存储着当前处理的lists文件所在的目录

2. 如果要在子目录中添加CMakeLists.txt

子目录中编译的目标使用的第三方库,可以在总目录中配置好。
比如目录A中有一个CMakeLists.txt,该文件中使用了add_subdirectory(example)添加子目录example到项目中。子目录example的CMakeLists.txt中添加了编译目标(add_executable),并且在前面几行写了需要第三方库find_package(Sophus required),那么可以在目录A的CMakeLists.txt中设置set(Sophus_DIR xxxxxx)来引导cmake查找Sophus库的位置。

3.CUDACXX和CMAKE_CUDA_COMPILER

原始文档地址https://cmake.org/cmake/help/latest/envvar/CUDACXX.html
CUDACXX是CMake的环境变量,其初始值是从调用进程环境中得来的。适用于编译CUDA语言可执行文件。仅在第一次配置中用于CMake确定CUDA编译器,CUDA的值保存在缓存中,条目为CMAKE_CUDA_COMPILER。
也就是环境变量中需要有CUDACXX这一条变量,不然会报No CMAKE_CUDA_COMPILER could be found错误,在Clion编译某个项目时我遇到了这个错误,解决方法是:去File->settings->Build->CMake中最下面一行添加上环境变量CUDACXX=xxxxx(你的CUDA的nvcc的路径),然后Tools->CMake->Reset Cache and Reload Project就行。

猜你喜欢

转载自blog.csdn.net/u013238941/article/details/125738944
今日推荐