windows和linux平台C++工程 如何连接第三方依赖库

本文详细介绍了在Windows环境下使用VS2019和Linux环境下使用CMake连接OpenCV库的方法。包括设置附加包含目录、附加库目录、附加依赖项,以及在CMakeList.txt中配置FindPackage和target_link_libraries等关键步骤。同时,针对不同平台和编译模式(Debug/Release)下库文件的选择进行了说明。
摘要由CSDN通过智能技术生成

C++工程 如何连接第三方依赖库

本文以opencv为例说明分别在windows平台用VS2019以及linux平台下使用CMake如何连接项目的第三方依赖库

VS2019设置第三方依赖库

1.附加包含目录(这里写的绝对路径,建议相对路径)

注意:本工程的opencv的头文件路径是E:\Project_C++\yolo_dnn\yolo_dnn\lean\opencv4.5.5\include\opencv2,附加包含目录写成

E:\Project_C++\yolo_dnn\yolo_dnn\lean\opencv4.5.5\include,那么包含opencv头文件的时候需要写成#include <opencv2/dnn.hpp>,如果附加包含目录写成E:\Project_C++\yolo_dnn\yolo_dnn\lean\opencv4.5.5\include\opencv2,那么就可以写成#include <dnn.hpp>。所以有人就将以上两种情况都写上,如下所示:

E:\Project_C++\yolo_dnn\yolo_dnn\lean\opencv4.5.5\include

E:\Project_C++\yolo_dnn\yolo_dnn\lean\opencv4.5.5\include\opencv2
在这里插入图片描述

2.附加库目录(这里写的绝对路径,建议相对路径)

在这里插入图片描述

3.附加依赖项

在这里插入图片描述在这里插入图片描述

注意 Debug模式使用的是opencv_world455d.lib,Release模式使用的是opencv_world455.lib,与lib对应的dll文件放入工程目录下,有的dll必须放入.exe文件目录下,不知道为什么,待研究

linux下设置第三方依赖库

使用Ubuntu系统,使用CMakeList.txt构建工程,这里介绍三种方式:1.opencv安装到系统目录下,2.opencv 安装到指定目录下,3.将opencv编译成libopencv_world.so的形式(1和2的方式都是一堆.so文件,3是一个.so文件)

1.opencv安装到系统目录下

cmake_minimum_required(VERSION 2.8)

project(yolo_dnn)

set(CMAKE_CXX_STANDARD 11)

set(CMAKE_BUILD_TYPE Release)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build)

find_package(OpenCV REQUIRED)

aux_source_directory(src/ DIR_SRCS)

ADD_EXECUTABLE(yolo_dnn ${DIR_SRCS})

target_link_libraries(yolo_dnn ${OpenCV_LIBS})

2.opencv安装到指定目录

cmake_minimum_required(VERSION 2.8)

project(yolo_dnn)

set(CMAKE_CXX_STANDARD 11)

set(CMAKE_BUILD_TYPE Release)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build)

#我的opencv安装路径是/home/yyh/opencv4.5.5_build,而加入lib/cmake/opencv4/的目的指向OpenCVConfig.cmake文件的所在路径
set(OpenCV_DIR "/home/yyh/opencv4.5.5_build/lib/cmake/opencv4/")  

find_package(OpenCV REQUIRED)

aux_source_directory(src/ DIR_SRCS)

ADD_EXECUTABLE(yolo_dnn ${DIR_SRCS})

target_link_libraries(yolo_dnn ${OpenCV_LIBS})

3.将opencv编译成libopencv_world.so的形式,cmake直接指向路径,如同windows

cmake_minimum_required(VERSION 2.8)

project(yolo_dnn)

set(CMAKE_CXX_STANDARD 11)

set(CMAKE_BUILD_TYPE Release)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/build)

include_directories(${PROJECT_SOURCE_DIR}/lean/opencv4.5.5/include/opencv4) # 指向.h文件,同windows中的附加包含目录

link_directories(${PROJECT_SOURCE_DIR}/lean/opencv4.5.5/lib) #指向.so的文件路径,同windows中的附加库目录

# 这个和target_link_libraries(yolo_dnn libopencv_world.so)一样可行(有人说这个是连接静态库用的,还是不特别明白两者的区别),这个必须在ADD_EXECUTABLE上面,target_link_libraries必须在ADD_EXECUTABLE下面
# link_libraries(libopencv_world.so) 

aux_source_directory(src/ DIR_SRCS)

ADD_EXECUTABLE(yolo_dnn ${DIR_SRCS})

target_link_libraries(yolo_dnn libopencv_world.so) #指定使用.so文件的名称 同windows中的附加依赖项


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值