一, 目录结构

├── CMakeLists.txt
├── include
│      └── shared
│              └── Hello.h
└── src
         ├── Hello.cpp
         └── main.cpp

* link:CMakeLists.txt[] - Contains the CMake commands you wish to run
* link:include/shared/Hello.h[] - The header file to include
* link:src/Hello.cpp[] - A source file to compile
* link:src/main.cpp[] - The source file with main

二,cmake基本脚本

cmake_minimum_required(VERSION 3.5)

project(hello_library)

# 根据库文件代码生成动态库
add_library(hello_library SHARED src/Hello.cpp)

# 创建动态库别名

add_library(hello::library ALIAS hello_library)

# 包含指定头文件所在的目录
target_include_directories(hello_library PUBLIC  ${PROJECT_SOURCE_DIR}/include)

# 创建可执行程序

add_executable(hello_binary 
src/main.cpp
)

# 链接动态库文件
target_link_libraries( hello_binary PRIVATE hello::library)

三,扩展分析

1.  add_library(hello_library SHARED  src/Hello.cpp)将会创建 libhello_library.so 名称的动态库。

2. 目标别名

 add_library(hello::library ALIAS hello_library)

 hello::library是hello_library的别名, 别名允许使用别名来链接对应的库文件。

转载于:https://www.cnblogs.com/svenzhang9527/p/10703754.html

cmake--生成--动态库相关推荐

  1. 006 - CMake 安装动态库并生成 XxxConfig.cmake 文件

    CMake 安装动态库并生成 XxxConfig.cmake 文件 文章目录 CMake 安装动态库并生成 XxxConfig.cmake 文件 引言 展示 简单解释CMakeLists.txt se ...

  2. cmake同时生成动态库与静态库的方法

    我的目录结构 顶层CMakeLists.txt src/CMakeLists.txt src/main/main.cpp src/main/CMakeLists.txt include/person. ...

  3. CMake 常用总结二:CMake 生成静态库与动态库

    引言 CMake 实践帮助我们对 CMake 有一个系统全面的了解,并且有大量示例以供参考,至少在实际项目中可以让我们有能力看懂并修改项目中现有的 CMake . 阅读完 CMake 实践文档,认为自 ...

  4. cmake导入so库_通过CMake方式生成动态库so文件

    JNITest 通过CMake方式生成动态库so文件 简介 Java JNI的本意是Java Native Interface(Java本地接口),它是为了方便Java调用C.C++等本地代码所封装的 ...

  5. 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...

  6. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )

    文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  7. Visual studio那些破事。。。(生成静态库、生成动态库、引用静态库、引用动态库)

    共4个小步骤,每个小步骤你都可以新建个VS解决方案,自己跟着步骤跑一下,windows怎么[生成静态库.生成动态库.引用静态库.引用动态库]你就基本明白了@! 文章目录 1.导出静态库.lib(add ...

  8. cmake编译动态库和静态库

    CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(hello)#添加源文件 aux_source_directory(./ DIR_SRCS)#设置编译参数 se ...

  9. vs 生成动态库不生产lib文件

    使用VS生成动态库时,没有生成相应的lib文件,导致程序无法运行. 头文件 添加导入和到处符号 #ifndef __HELLO_H__ #define __HELLO_H__#define __DLL ...

  10. 用Cmake编译Opencv源码,生成动态库

    前期准备:安装Cmake和VS2010 一安装Cmake 1 . 2. 3. 二. 1. 将OpenCV2.4.9安装于以下目录: G:/opencv2.4.9 2. 使用CMake建立VS工程文件  ...

最新文章

  1. 印象系列-磁盘和内存的基本认识
  2. Android WebView 和 javaScript的互相调用(一)
  3. 深入学习__doPostBack函数
  4. 设计模式のNullObjectPattern(空对象模式)----行为模式
  5. Java开发工具可以促进编程!
  6. Win10本地账户怎么更改为Microsoft账户
  7. 高性价比手持机有哪些
  8. c语言学习-自定义并调用函数求三个数的最小公倍数
  9. 网页左右怎么划分_UI基础汇总——网页设计规范
  10. HDU 1027 G - Can you answer these queries?
  11. C#反射Assembly 详细说明
  12. 进程间通信 --- 命名管道 有名管道存在与内存中,无名管道存在与文件系统中 换种角度看问题
  13. 区块链java项目_JAVA区块链项目实战(示例代码)
  14. QQ免费企业邮箱申请配置
  15. 【程序员高考】2018年全国统一高考程序员试卷
  16. 单片机定时器(65536-x)/256
  17. C#入门学习-----图书阅读器(WPF 用户控件技术)
  18. 微服务资源库太强了,学习手册限时开源
  19. 数据平台建设的痛点,如何进行元数据治理?
  20. Windows机制下的游戏编程实例一

热门文章

  1. 【转载】WebService到底是什么?
  2. 二叉搜索树(排序二叉树)
  3. IOS开发学习笔记027-UITableView 使用模型对象
  4. 在一个环境中使用不同版本的rails
  5. 哪些原因可能导致SQL操作操时呢?
  6. ConvMF论文解读
  7. EMNLP'21 | Dialogue System 对话系统
  8. 字节跳动宣布要做全网搜索,百度真正的危机来了
  9. 深度学习数学基础一--最小二乘法
  10. ​我拿 12 年 36 套四级真题做了什么 ?