add_executable(my_bin src/my_bin.cpp)find_package(OpenCV REQUIRED)include_directories(${OpenCV_INCLUDE_DIRS})target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置...
根据PKG_CONFIG_PATH路径找到库文件地址后,就定义了<prefix>_INCLUDE_DIRS和其他的这类变量,后续的用法就与find_package一致。find方法如下: find_package(PkgConfig) pkg_check_modules(BFL REQUIRED orocos-bfl) 使用方法: include_directories(${BFL_INCLUDE_DIRS}) link_directories(${BFL_LIBRARY_DIRS}) 3. ...
target_link_libraries(my_bin, ${OpenCV_LIBS}) 工作流程如下: find_package在一些目录中查找OpenCV的配置文件。 找到后,find_package会将头文件目录设置到${OpenCV_INCLUDE_DIRS}中,将链接库设置到${OpenCV_LIBS}中。 设置可执行文件的链接库和头文件目录,编译文件。 到现在为止出现了第一个问题。那就是: fin...
include_directories(/usr/include/curl) target_link_libraries(myprogram path/curl.so) 1. 2. 借助cmake提供的finder。使用cmake的Modules目录下的FindCURL.cmake,则CMakeLists.txt: find_package(CURL REQUIRED) include_directories($CURL_INCLUDE_DIR) target_link_libraries(myprogram path/curl.so) 1. 2....
include_directories(${OpenCV_INCLUDE_DIRS}) add_executable(main src/main.cpp) target_link_libraries(main ${OpenCV_LIBRARIES}) 1. 2. 3. 4. 5. 6. 执行cmake成功,make编译时没有找到opencv的库是很常见的报错。明明在cmake中target_link_libraries()指定了链接库,那么为什么还是会报ld错误呢?
1、include_directories(<包含hello.h在头文件在路径>);link_directories(<包含库文件的路径>)。最后再用target_link_library(usehello hello), add_executable(usehello main.cpp) 2、第二种方法是使用find_package的方法,请看下面代码, 首先要设置find_package的搜索目录,搜索目录设置成hello-config.cmake文件所在...
include_directories(${lzma_INCLUDE_DIR}) add_executable(test test.cpp) target_link_libraries(test ${lzma_LIBRARY}) endif() # 命令行执行 cmake . make ./test # 命令行输出(只展示跟例子相关的输出)Findlzma library:/usr/local/include,/usr/local/lib/liblzma.dylib ...
include_directories(${Sophus_INCLUDE_DIRS}) target_link_libraries(useSophus ${Sophus_LIBRARIES}) 我们怎么知道要连接Sophus_INCLUDE_DIRS,Sophus_LIBRARIES,而不是SOPHUS_INCLUDE_DIRS,SOPHUS_LIBRARIES或其他,其实 find_package主要是找到.cmake文件,然后这些变量在.cmake 里面定义了,我们看Sophus/SophusConfig.cmak...
XXX_FOUND代表库是否查找成功XXX_INCLUDE_DIRS代表头文件的路径XXX_LIBRARIES代表库文件的路径 比如,cmake 可以很轻松引入 bzip2 代码语言:javascript 复制 find_package(BZip2)if(BZIP2_FOUND)include_directories(${BZIP_INCLUDE_DIRS})target_link_libraries(test ${BZIP2_LIBRARIES})endif(BZIP2_FOUND) ...
include_directories(${Foo_INCLUDE_DIRS}) ``` 这会将 `Foo` 库的包含目录添加到项目中,使得你可以在源代码中使用 `#include <Foo/foo.h>` 包含头文件。 2. **链接库**: 通常情况下,当你找到一个库时,CMake会设置一个变量来引用该库的链接库。你可以使用这个变量来链接你的目标。例如,假设你找到了...