新建一个文件夹,然后创建如下的目录:

.
├── build
├── CMakeLists.txt
└── lib├── CMakeLists.txt├── hello.cpp└── hello.h

最外层的CMakeLists.txt内容:

cmake_minimum_required(VERSION 3.14)PROJECT(HELLO)
ADD_SUBDIRECTORY(lib)

lib内部的CMakeLists.txt内容:

SET(LIBHELLO_SRC hello.cpp)
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})

hello.h的内容:

// 头文件只是为了声明调用接口
#ifndef HELLO_H
#define HELLO_H
#include <iostream>
void HelloFunc();
#endif

hello.cpp的内容:

#include "hello.h"void HelloFunc() {std::cout << "Hello world !\n";
}

在build目录依次执行命令:cmake ..make,会在build目录下生成lib文件夹,其内部包含libhello.so动态链接库。

如果想要指定动态链接库的生成位置,那么可以在lib的CMakeLists.txt文件中添加:

SET(LIBRARY_OUTPUT_PATH <path>)

如果进行安装操作,可以执行如下操作:

INSTALL(TARGETS helloLIBRARY DESTINATION lib
)

CMake笔记2 构建动态链接库相关推荐

  1. CMake笔记1 构建基本的项目

    最基础的同级文件操作 首先,创建CMakeLists.txt,这是CMake处理的基本文件.首先给出只有一个文件的最简单的情况: PROJECT (HELLO) SET(SRC_LIST main.c ...

  2. CMake笔记3构建复杂项目

    直接参考:https://blog.csdn.net/ktigerhero3/article/details/70313350

  3. 第四周读书笔记《构建之法》

    第四周读书笔记<构建之法> 第四周读书笔记<构建之法> 沈三景 PB15061249 软件工程 读书笔记 前言 本周接着读了构建之法(上周读了<程序员的修炼之道>) ...

  4. 学习C++:C++进阶(三)CMake基础篇---用一个小型项目了解CMake及环境构建

    V1.1 于2022年7月15日第二次修改:添加了比较多的解释图,解读了各类库的CMakelist.txt文件 目录 第一部分 基础篇(Basics) 1.0 本部分主要学什么(Intro) 1.1 ...

  5. 云计算学习路线教程大纲课堂笔记:构建企业级WIKI及工单系统

    云计算学习路线教程大纲课堂笔记:构建企业级WIKI及工单系统: -Author: bavdu -Email: bavduer@163.com -Github: https://github.com/b ...

  6. 使用Libtool构建动态链接库 [五]

    使用Libtool构建动态链接库 [五] 文章目录 使用Libtool构建动态链接库 [五] Libtool简介 Libtool包 Libtool的选项 **--tag选项** **--mode选项* ...

  7. Makefile学习笔记06|编译动态链接库

    Makefile学习笔记06|编译动态链接库   希望看到这篇文章的朋友能在评论区留下宝贵的建议来让我们共同成长,谢谢.   这里是目录 静态链接与动态链接   链接分为两种:静态链接.动态链接. 静 ...

  8. CMake I 指定构建类型Debug/Release

    目录 一.单配置生成器CMAKE_BUILD_TYPE 1.CMakeLists.txt 2.构建 (1)Release (2)Debug 二.复合配置生成器CMAKE_CONFIGURATION_T ...

  9. cmake笔记(1)

    本文是cmake使用过程中的简单笔记,写作过程中大量参考了<CMake Practice中文版1>,如果需要快速从零开始学习cmake,推荐阅读CMake Practice.本人使用cma ...

最新文章

  1. 邓力、何晓冬深度解读:多模态智能未来的研究热点
  2. 我整理了HMOV四大5G旗舰的参数,可依然没能拯救我的选择困难症
  3. typecast java_Java中的类型转换
  4. java根据enum某个属性值获取枚举项
  5. bootstrap bable 自动换行问题
  6. 《零基础》MySQL 超级入门教程
  7. 【Word】一些实用的小技巧
  8. Spring AOP的简单示例
  9. requirej入门(一)
  10. java setenabled不好用,哪个更好,setEnabled或setUserInteractionEnabled?
  11. LeetCode Map Sum Pairs
  12. Unity3d 周分享(16期 2019.5.1 )
  13. 密立根油滴实验数据处理(C++实现)
  14. 软著怎么申请?一篇文章教会你!
  15. Flask项目之个性化微电影网站的实战开发(完结)
  16. 电动推杆复位程序c语言,程序中怎样区别是热复位还是冷复位?
  17. 奥塔在线:CentOS7下配置Nginx实现本地缓存
  18. Qt ASSERT:QMetaObjectPrivate::get(smeta)-revision= 7in file kernel\qobject.cpp,line 2646
  19. 五款WordPress图片压缩插件推荐
  20. xxl-job调度中心集群部署重复调度问题

热门文章

  1. ios pan手势滑动消失动画_iOS仿抖音—评论视图滑动消失
  2. 析砂性土层php泥浆护壁,砂卵石层钻探护壁工艺分析
  3. Java 实验5 T4 检验字符串是否合法
  4. 宽带——选择中国电信
  5. [转]awsome-java
  6. 为什么 npm 要为每个项目单独安装一遍 node_modules?
  7. 【100题】第三十六 比赛淘汰问题(谷歌笔试)
  8. 新鲜出炉--Struct2、Hibernate3、Spring3框架搭建实战
  9. 敏捷开发日常跟进系列之一:燃尽图(上)
  10. smarty的配置与安装