Linux如何在CMakeLists.tst里添加第三方库文件

对于小白来说,在使用CMake编译工程时,经常会出现代码里某个函数未定义找不到的问题,出现Undefined function reference to XXX 的报错,如何解决这么问题呢?

1、原因分析:

出现Undefined reference to XXX问题,是因为你在程序代码中,没有添加函数库,就使用了该函数库中的函数。
比如说你想要用 OpenCV 读取一张图片,使用了里面的 imread 函数,但没有添加OpenCV的库文件,就会出现报错信息在这里插入图片描述

2、解决办法

在工程的CMakeLists.txt文件中添加OpenCV函数库文件

2.1  首先要搜索OpenCV的“安装包”

		find_package(OpenCV REQUIRED)
		指令运行成功后会自动创建两个变量—— OpenCV_INCLUDE_DIRS 和 OpenCV_LIBS ,这里面存放的是OpenCV头文件(include)的地址和库文件(library)的地址
		
2.2  告诉工程OpenCV的头文件在哪里找
		
		include_directories(${OpenCV_INCLUDE_DIRS})
		OpenCV_INCLUDE_DIRS里存放的是OpenCV众多头文件的地址,  ${ }  在CMake中的作用是给变量取值,IF语句比较特殊,变量不用  ${ }  就能取值

2.3	告诉工程OpenCV的库文件在哪里找
		
		target_link_libraries(工程名  ${OpenCV_LIBS})
		——注意,这条指令放在add_executable(工程名  main.cpp)后面
		OpenCV_LIBS是前面find_package自动生成的变量,里面存放OpenCV库文件的地址。

3、 成功示例

Linux如何在CMakeLists.tst里添加第三方库文件_第1张图片

你可能感兴趣的:(opencv,计算机视觉,人工智能)