如果你不使用FIND_PATH,CMAKE_INCLUDE_PATH变量的设置是没有作用的,你不能指望它会直接为编译器命令添加参数-I<CMAKE_INCLUDE_PATH>。 以此为例,CMAKE_LIBRARY_PATH可以用在FIND_LIBRARY中。 同样,因为这些变量直接为 FIND_ 指令所使用,所以所有使用 FIND_ 指令的 cmake 模块都会受益。 FIND 系列指令,通过FIND...
<prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/ (U) cmake找到这些目录后,会开始依次找<package>Config.cmake或Find<package>.cmake文件。找到后即可执行该文件并生成相关链接信息。 现在回过头来看查找路径的根目录。我认为最重要的一个是PATH。由于/usr/bin/在PATH中,cmake会自动去/usr/(lib...
set(CMAKE_CXX_FLAGS "-std=c++17") include_directories( "/usr/include/eigen3" ) find_package( Pangolin REQUIRED ) message("Pangolin include dir: ${Pangolin_INCLUDE_DIRS}") message("Pangolin libs: ${Pangolin_LIBRARIES}") include_directories( ${Pangolin_INCLUDE_DIRS} ) add_executable( visuali...
target_link_libraries(useSophus ${Sophus_LIBRARIES}) 我们怎么知道要连接Sophus_INCLUDE_DIRS,Sophus_LIBRARIES,而不是SOPHUS_INCLUDE_DIRS,SOPHUS_LIBRARIES或其他,其实 find_package主要是找到.cmake文件,然后这些变量在.cmake 里面定义了,我们看Sophus/SophusConfig.cmake: # Sophus source dir set( Sophus_SOURCE...
libboost_filesystem-mt-s-gd; libboost_filesystem-mt-s-gd CMake Error at C:/dev/Jetbrains/CLion 2019.3.4/bin/cmake/win/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message): Could NOT find Boost (missing: Boost_INCLUDE_DIR filesystem) (Required is exact version "1.74...
对于只需要头文件的库,最简单的,可以使用find_path。就是在CMakeLists.txt指定一个文件名,CMake会自动搜索,并且最后获取这个文件所在的文件夹,可以直接作为include dir。 例如stb库,https://github.com/nothings/stb 源代码里甚至没有CMakeLists.txt。毕竟全部都是头文件。这种想在CMake里使用,可以直接复制想要的...
include_directories(${OpenCV_INCLUDE_DIRS}) target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置到${OpenCV_LIBS}中。
在/backup/cmake/目录中建立t6目录,并在其中建立cmake 目录用于存放我们自己定义的FindHELLO.cmake模块,同时建立src目录,用于存放我们的源文件。 1,定义 cmake/FindHELLO.cmake模块 1FIND_PATH(HELLO_INCLUDE_DIR hello.h /usr/include/hello/usr/local/include/hello)2FIND_LIBRARY(HELLO_LIBRARY NAMES hello PA...
CMAKE_BINRAY_DIR: 对应cmake的build的目录,主要是运行时生成的文件目录。 CMAKE_CURRENT_SOURCE_DIR: 一般来说,一个工程会有多个cmakelists.txt文件,对应当前文件目录。 CMAKE_CURRENT_BINARY_DIR: 对应build里的目录。 CMAKE_MODULE_PATH: api(include/find_package)包含别的cmake文件时的搜索目录。
include_directories(${CMAKE_SOURCE_DIR}/include) 指定生成文件: add_executable(test.exe main.c) ——test.exe和main.c都可以指定目录 1. Note 我们一般在项目中新建一个build文件夹,build文件夹和CmakeLists处于同一层级,并在build文件夹目录里执行`cmake ..`,这样MakeFile等一系列文件将出现在build文件夹...