上一篇我分析了如何调用别人的第三方库,现在我继续分析如何构建一个库供他人使用。完成这个任务需要用到ADD_LIBRARY()

1:ADD_LIBRARY()语法

add_library(<name> [STATIC | SHARED | MODULE][EXCLUDE_FROM_ALL]source1 [source2 ...])

:库的名字,直接写名字即可,不要写lib,会自动加上前缀的哈。

[STATIC | SHARED | MODULE] :类型有三种。

 SHARED,动态库STATIC,静态库MODULE,在使用 dyld 的系统有效,如果不支持 dyld,则被当作 SHARED 对待。

EXCLUDE_FROM_ALL:这个库不会被默认构建,除非有其他的组件依赖或者手

2:使用

SET(LIBHELLO_SRC hello.c)
ADD_LIBRARY(hello SHARED ${LIBHELLO_SRC})
ADD_LIBRARY(hello_static STATIC ${LIBHELLO_SRC})

3:注意,一般我们使用的静态库/动态库只是后缀名不同而已,上面构建的libhello.so与libhello_static.a,显然名字不同哦。这时你会有一个想法,那我把hello_static改成hello,结果是不可行的,静态库无法构建。重名会忽略第二条指令。

SET_TARGET_PROPERTIES(hello_static PROPERTIES OUTPUT_NAME "hello")

4:关于动态库的版本号

#VERSION 指代动态库版本,SOVERSION 指代 API 版本。
SET_TARGET_PROPERTIES(hello PROPERTIES VERSION 1.2 SOVERSION 1)

link

cmake之 ADD_LIBRARY()相关推荐

  1. cmake:add_library生成静态库和动态库

    此文为:轻松入门cmake系列教程 有时我们只需要编译出动态库,静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake 实验 实验一:生成静态库 编写代码 项目结构如下: [CMak ...

  2. Linux下CMake简明教程(六)动态库和静态库的编译控制

    代码在git 有时只需要编译出动态库和静态库,然后等着让其它程序去使用.让我们看下这种情况该如何使用cmake.首先按照如下重新组织文件,只留下testFunc.h和TestFunc.c ├── CM ...

  3. linux make指定目标平台,CMake on Linux:目标平台不支持动态链接

    我很简单 CMakeLists.txt CMAKE_MINIMUM_REQUIRED(VERSION 2.8) FIND_PACKAGE(VTK REQUIRED) PROJECT(test CXX) ...

  4. 学习CMake(一)

    首先要知道的几个重要命令 # https://cmake.org/cmake/help/v3.14/find_file() 重点:找到文件的全路径(包含文件名)(查找需要全称),默认路径是CMAKE_ ...

  5. cmake 从入门到入土

    为什么需要CMake 你或许听过好几种 Make 工具,例如 : GNU Make QT 的 qmake 微软的 MS nmake BSD Make(pmake)Makepp 这些 Make 工具遵循 ...

  6. cuda lib64和stubs目录下存在同名so 引起cmake错误

    错误提示 CMake Warning at cmake/FindCUDA.cmake:1649 (add_library):   Cannot generate a safe runtime sear ...

  7. 腾讯以及各大厂的 C++ 开发环境是什么样的?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自|深度学习与计算机视觉 看网上各种 editor.IDE ...

  8. Android音视频开发入门(5)使用LAME编码一个PCM文件,为了跳槽强刷1000道Android真题

    无论是自行安装PC上的编译器,还是下载其他平台的交叉编译链,它们都会提供下面几个工具: CC 编译器,对C源文件进行编译处理,生成汇编文件 AS 将汇编文件生成目标文件 AR 打包器,用于库操作 LD ...

  9. PX环境搭建编译px4_fmu-v2_default相关问题的解决方法

    背景说明 笔者在ubuntu18.04下搭建PX环境时git clone的是较新版本的PX4-Autopilot链接在此.(而目前网上的教程基本是较老版本的Firmware,两者文件分布不相同,所以已 ...

最新文章

  1. 最小二乘法多元线性回归_回归系列(二)| 最小二乘法真有那么复杂吗?
  2. 近世代数--置换群--置换permutation分解成什么?置换的级如何计算?
  3. HTTP协议和web工作原理
  4. Spring Session官方介绍及spring框架学习方法
  5. hive load data inpath 空目录_hive学习笔记之四:分区表
  6. rsa 2048 java_使用SHA-256和RSA 2048进行加密和签名
  7. C++开发需要掌握哪些技能?
  8. 1085 Perfect Sequence(25 分)
  9. 华为鸿蒙系统电脑有那些,华为鸿蒙系统上线,仅2家国产品牌支持,爆冷?
  10. 信息论与编码冯桂周林著答案_信息论与编码技术+(冯桂+林其伟+陈东华+著)+清华大学出版社+课后答案.pdf...
  11. java计算机毕业设计医院各科室财务管理2021源码+系统+mysql数据库+lw文档
  12. Palabos User Guide中文解读 | 第十四章 | 网格加密Refinement
  13. 阿里云函数计算(一)
  14. gomarket服务器位置,V712双核版机型常见问题集解答.pdf
  15. 宝宝专业智力测试软件,宝宝智力测试 App—儿童智力测试
  16. 请你帮我一起转到全中国
  17. WIF调试分享(ap6256)
  18. 极客爱情 2.2 | 程序员是这样撩妹的
  19. 文本数据挖掘----数据预处理
  20. HDU 5750 快速筛素数法打表

热门文章

  1. 基于小波和插值的超分辨率图像重建算法
  2. C++派生类构造函数调用规则
  3. tftp环境搭建笔记
  4. 对Java单例模式 volatile关键字作用的理解
  5. Mybatis原理初探
  6. Unity C#单例模式的实现
  7. VLC for android 编译错误
  8. mount挂载windows共享文件夹
  9. VHDL+Verilog良好的代码编写风格(转载)
  10. 如何参与github上的开源项目?