不使用CMake,如何引入OpenCV头文件并编译项目?
不使用CMake时,手动编译OpenCV项目的解决方法
用apt安装libopencv-dev后,直接用g编译会找不到头文件,原因是OpenCV的头文件存放在/usr/include/opencv4/目录下,而g默认只搜索/usr/include这类根路径,无法定位到opencv2/opencv.hpp。你需要在编译时指定头文件路径,同时链接OpenCV的依赖库,具体操作如下:
1. 确认头文件位置(可选)
先确认OpenCV头文件的具体路径,执行命令:
find /usr -name opencv.hpp
正常输出应为:/usr/include/opencv4/opencv2/opencv.hpp,这说明头文件的根搜索路径是/usr/include/opencv4。
2. 编译命令的两种写法
方式一:手动指定路径和库
直接在g++命令中添加头文件路径(-I参数)和需要链接的库(-l参数),针对你提供的测试代码,只需要链接opencv_core库:
g++ tt_opencv.cpp -o test -I/usr/include/opencv4 -lopencv_core
如果后续用到更多OpenCV模块(比如图像显示、图像处理),需要添加对应的库,比如-lopencv_highgui、-lopencv_imgproc等。
方式二:用pkg-config自动生成参数(推荐)
pkg-config可以自动获取OpenCV的所有编译和链接参数,无需手动输入,命令更简洁:
g++ tt_opencv.cpp -o test $(pkg-config --cflags --libs opencv4)
这个命令会自动添加所有必要的头文件路径和依赖库链接,适合复杂项目。
验证编译结果
执行编译命令后,若没有报错,运行生成的可执行文件即可:
./test
内容的提问来源于stack exchange,提问作者Lionnel104
相关产品推荐
相关产品推荐

