ubuntu 类封装之Cmakelist探索

9 篇文章 0 订阅
6 篇文章 0 订阅

1. 前言

windows下的类封装是使用VS封装成dll,跟ubuntu下封装成.so有很大的不同,今天就介绍一下在ubuntu下如何将类封装成.so文件,并进行调用。

2. 实践

  • 1.建立工程目录
├── Generate_lib
│   ├── build
│   ├── CMakeLists.txt
│   └── libhello
│       ├── HKCapture.cpp
│       └── HKCapture.hpp
└── use_lib
    ├── build
    ├── CMakeLists.txt
    └── example.cpp
    
HKCapture为要封装的类, example用来调用HKCapture
  • 2. 编写Generate_lib 的CMakeLists.txt封装HKCapture类
# cmake needs this line
cmake_minimum_required(VERSION 3.1)

# Define project name
project(HKCapture)

# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)

#(注:The REQUIRED option stops processing with an error message if the package cannot be found.)去掉这个关键字也可编译

#//生成动态库(SHARED)
add_library(HKCapture SHARED ${PROJECT_SOURCE_DIR}/libhello/HKCapture.cpp)

#//安装文件到目录下
install(TARGETS HKCapture LIBRARY DESTINATION ${PROJECT_SOURCE_DIR}/lib)
install(FILES ${PROJECT_SOURCE_DIR}/libhello/HKCapture.hpp DESTINATION ${PROJECT_SOURCE_DIR}/include)


# Link your application with OpenCV libraries
target_link_libraries(HKCapture PRIVATE ${OpenCV_LIBS})
  • 3. 编写use_lib的CMakeLists.txt
# cmake needs this line
cmake_minimum_required(VERSION 3.1)

# Define project name
project(opencv_example_project)

# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)

#//头文件目录
include_directories(
        ${PROJECT_SOURCE_DIR}/../Generate_lib/include
)
link_libraries(
	${PROJECT_SOURCE_DIR}/../Generate_lib/lib/libHKCapture.so
)
#target_link_libraries(example libHKCapture)    

# Declare the executable target built from your sources
add_executable(opencv_example example.cpp)

# Link your application with OpenCV libraries
target_link_libraries(opencv_example PRIVATE ${OpenCV_LIBS})

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

参考:
cmake : add_library详解
cmake官方文档
cmake 常用设定及函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Christo3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值