linux下编译opencv静态库并正确链接

编译opencv静态库

opencv源代码下载地址:https://opencv.org/releases/

解压压缩包,进入目录,执行如下操作:

mkdir build
cd build
mkdir OutLib
cd ..

cmake  ../ -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/OutLib -D BUILD_SHARED_LIBS=0
-D BUILD_SHARED_LIBS=OFF -D BUILD_SHARED_LIBS=NO -D BUILD_PNG=ON -D BUILD_JASPER=ON -D BUILD_JPEG=ON -D BUILD_TIFF=ON -D BUILD_ZLIB=ON -D WITH_JPEG=ON -D WITH_PNG=ON -D WITH_JASPER=ON -D WITH_TIFF=ON

make

make install

注意:cmake命令需要依据CMakeLists.txt去执行

执行完成之后,会在/OutLib下生成文件,如下(wsl环境):
linux下编译opencv静态库并正确链接_第1张图片
lib目录下如下:
linux下编译opencv静态库并正确链接_第2张图片

调用opencv静态库

调用opecv静态库,需要链接的库比较多
CMakeLists.txt

# 头文件目录
include_directories(/OutLib/include/opencv4/opencv2) 
include_directories(...)  # freetype2头文件目录
 
# 库文件目录
link_directories(/OutLib/lib)
link_directories(/OutLib/lib/opencv4/3rdparty)

target_link_libraries(${PROJECT_NAME}  libfreetype.a  
libopencv_highgui.a libopencv_imgcodecs.a libopencv_imgproc.a   libopencv_core.a
libade.a libIlmImf.a  libittnotify.a liblibjpeg-turbo.a liblibopenjp2.a liblibpng.a liblibprotobuf.a liblibtiff.a liblibwebp.a libquirc.a libzlib.a
 z pthread dl)
  • 调用静态库需要依赖 /lib/opencv4/3rdparty 下的库(没有找到依赖关系,因此我只能全部添加进去)
  • 注意静态库的依赖顺序,target_link_libraries的规则是前面的库依赖后面的库,否则容易报错
  • 静态库在前,动态库添加在括号尾部

你可能感兴趣的:(opencv,opencv)