cmakelist.txt 编译并引用动态库

2023-05-16

示例代码 - hello slam:

1、简单的 exe

        使用 CMakeLists.txt 设置工程以 debug 形式编译。

helloSLAM.cpp 内容:

#include <iostream>

using namespace std;

int main(int argc, char **argv) {
    cout << "Hello SLAM!" << endl;
    return 0;
}

CMakeLists.txt 内容:

# 声明要求的 cmake 最低版本
cmake_minimum_required(VERSION 2.8)

# 声明一个 cmake 工程
project(HelloSLAM)

# 设置编译模式
set(CMAKE_BUILD_TYPE "Debug")

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
add_executable(helloSLAM helloSLAM.cpp)

2、动态库调用

1)动态库类 libHelloSLAM.h。

//这是一个库文件
#include <iostream>

using namespace std;

void printHello() {
    cout << "Hello SLAM" << endl;
}

2)动态库类 libHelloSLAM.cpp 。

#ifndef LIBHELLOSLAM_H_
#define LIBHELLOSLAM_H_
// 上面的宏定义是为了防止重复引用这个头文件而引起的重定义错误

// 打印一句hello的函数
void printHello();

#endif

3)调用主体

useHello.cpp 实现:

#include "libHelloSLAM.h"
// 使用 libHelloSLAM.h 中的 printHello() 函数
int main(int argc, char **argv) {
    printHello();
    return 0;
}

CMakeLists.txt 内容:

# 声明要求的 cmake 最低版本
cmake_minimum_required(VERSION 2.8)

# 声明一个 cmake 工程
project(HelloSLAM)

# 设置编译模式
set(CMAKE_BUILD_TYPE "Debug")

# 添加一个可执行程序
# 语法:add_executable( 程序名 源代码文件 )
add_executable(helloSLAM helloSLAM.cpp)

# 添加hello库
add_library(hello libHelloSLAM.cpp)

# 共享库
# add_library(hello_shared SHARED libHelloSLAM.cpp)
add_library(hello_shared libHelloSLAM.cpp)

# 添加可执行程序调用hello库中函数
add_executable(useHello useHello.cpp)

# 将库文件链接到可执行程序上
target_link_libraries(useHello hello_shared)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmakelist.txt 编译并引用动态库 的相关文章

随机推荐

  • TX2系统镜像制作及烧写

    可以通过制作镜像的方法来快速复制板子的环境 xff0c 达到快速部署的目的 tx2系列资源总目录地址 xff1a https blog csdn net weixin 34910922 article details 106933180 P
  • tx2刷机-安装环境

    tx2系列资源总目录地址 xff1a https blog csdn net weixin 34910922 article details 106933180 1 解压 Linux Driver Package xff0c 生成文件夹目录
  • TX2下查看CPU GPU 内存使用率

    声明 xff1a 文章仅作知识整理 分享 xff0c 如有侵权请联系作者删除博文 xff0c 谢谢 xff01 tx2系列资源总目录地址 xff1a https blog csdn net weixin 34910922 article d
  • onnxsim-让导出的onnx模型更精简

    用torch导出的模型有时候参数过多 xff0c 不利于查看 查找资料onnxsim可以简化模型 xff0c 让显示更加自然 如 xff0c reshap层的导出 xff0c 红框中细节参数被显示出现 默认导出 xff1a 使用onnxsi
  • conda国内源-持续更新

    清华源 中科大源大部分时间能用 xff0c 但没事也会被封 最近发现的北外源挺好用 推荐使用 xff1a 北外镜像 xff08 推荐 xff09 xff1a conda config add channels https mirrors b
  • (三)PX4在gazebo中仿真障碍物检查与路径规划【完全SIL】

    首先完成 ROS PX4 firmware gazebo的环境配置 可以参考上一篇博客 二 PX4编译与gazebo仿真环境的搭建 ubuntu14 amp ubuntu16 安装 障碍物检测与路径规划的一些依赖库 span class h
  • python使用tcp传输图像

    使用tcp进行图像网络收发 主要分为两个部分 xff1a 1 服务端 step1 启动服务 xff0c 等待客户端连接 xff1b step2 等待并接受客户端数据 xff1b step3 接收的二进制流解码 xff0c 显示 xff1b
  • apt-get install 报错:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系

    sudo apt get install安装软件时 xff0c 出现错误 无法修正错误 xff0c 因为您要求某些软件包保持现状 xff0c 就是它们破坏了软件包间的依赖关系 提示已经很明显了 xff0c 依赖关系问题 百度后 xff0c
  • 数据增强(Data Augmentation)常用方法汇总

    1 数据增强的作用 1 xff09 避免过拟合 当数据集具有某种明显的特征 xff0c 例如数据集中图片基本在同一个场景中拍摄 xff0c 使用Cutout方法和风格迁移变化等相关方法可避免模型学到跟目标无关的信息 2 xff09 提升模型
  • uint8_t和char的相互转换

    uint8 t 和char 的相互转换以及uint8 t 和int16 t 的相互转换 实际应用需要 xff0c 实现uint8 int16 t int32 t的按字节传输 xff0c 实现发送和接收功能 如int16 t xff0c 需要
  • c++ sleep函数头文件

    c 43 43 11标准 xff0c 提供线程休眠函数 xff1a using namespace std chrono literals std this thread sleep for 5 线程休眠5ms 1 windows下支持 x
  • shell指令自带sudo密码

    希望在sh脚本文件中的shell指令中使用sudo命令 xff0c 需要自动输入密码以确保顺序执行 有两种方式可以实现 xff1a 1 将密码以参数形式追加到脚本 使用管道 xff1a echo 密码 sudo S shell命令 如 xf
  • qt 线程同步-互斥量(Qmutex)

    在多线程应用程序中 xff0c 由于多个线程的存在 xff0c 线程之间可能需要访问同一个变量 xff0c 或一个线程需要等待另外一个线程完成某个操作后才产生相应的动作 xff0c 这时候就需要做线程同步 所以 xff0c 需要线程同步情况
  • qt下使用opencv读取视频

    测试环境 xff1a ubuntu18 04 43 opencv4 2 43 Qt 一个基础的opencv读取视频并显示demo video pro文件 xff1a SOURCES 43 61 main cpp INCLUDEPATH 43
  • KITTI数据集下载链接

    1 简介 KITTI数据集由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创办 xff0c 是目前国际上最大的自动驾驶场景下的计算机视觉算法评测数据集 该数据集用于评测立体图像 stereo xff0c 光流 optical flow xf
  • python ftp下载上传文件或文件夹

    目录 1 包引用 2 函数说明 2 1 连接登录 2 2 常规操作指令 xff08 对标linux指令 xff09 2 3 上传文件 2 4 下载文件 2 5 退出 实际需要 xff0c 编写一个脚本 xff0c 通过ftp下载文件或这文件
  • C++ fstream/ifstream/ofstream文件读写操作

    文章目录 写在前面1 fstream类的成员函数 open xff0c close open读写操作 2 fstream子类 ofstream ifstreamofstream 向文件中写数据ifstream 从文件中读数据 写在前面 在C
  • yolov3 完整讲解-从数据编码角度介绍

    对yolo系列文章的发展做个总结 神经网络训练模型的根本就是真值与预测值比较 xff0c 落实到不同任务最根本的区别的就是对真值的编码 理解深度学习的关键是明白真实值如何编码 xff0c 下面从这个角度介绍 1 问题的引入 深度学习最早用来
  • 小样本学习

    机器学习就是从数据中学习 xff0c 从而使完成任务的表现越来越好 小样本学习 是具有有限监督数据的机器学习 类似的 xff0c 其他的机器学习定义也都是在机器学习定义的基础上加上不同的限制条件衍生出来 例如 xff0c 弱监督学习 是强调
  • cmakelist.txt 编译并引用动态库

    示例代码 hello slam xff1a 1 简单的 exe 使用 CMakeLists txt 设置工程以 debug 形式编译 helloSLAM cpp 内容 xff1a include lt iostream gt using n