IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++ Cmake学习(三):工程化和安装 -> 正文阅读

[C++知识库]C++ Cmake学习(三):工程化和安装

目录

让Hello World看起来更像一个工程

将目标文件放入构建目录的bin子目录

ADD_SUBDIRECTORY指令

更改二进制的保存路径

安装

如何安装HelloWord

安装文件COPYRIGHT和README

安装脚本runhello.sh

安装doc中的hello.txt

开始编译安装


?学习通道:从零开始详细介绍CMake

Cmake下载地址:下载地址

Cmake官网:官网


让Hello World看起来更像一个工程

为工程添加一个子目录src,用来防止工程源代码

添加一个子目录doc,用来放置工程的文档hello.txt

在工程目录添加一个runhello.sh脚本,用来调用hello二进制

将构建后的目标文件放入构建目录的bin子目录

将doc目录的内容以及COPYRIGHT/README安装到/usr/share/doc/cmake

将目标文件放入构建目录的bin子目录

每个目录下都要有一个CMakeLists.txt说明

?

?外层CMakeLists.txt

PROJECT(HELLO) 
ADD_SUBDIRECTORY(src bin)

src下的CMakeLists.txt

ADD_EXECUTABLE(hello main.cpp)

ADD_SUBDIRECTORY指令

ADD_SUBDIRECTORY(source_dir [binary_dir][EXCLUDE_FROM_ALL])

这个指令用于向当前工程添加存放源文件的子目录,并可以指定中间二进制和目标二进制存放的位置

EXCLUDE_FROM_ALL函数是将写的目录从编译中排除,如程序中的example

ADD_SUBDIRECTORY(src bin)

将src子目录加入工程并指定编译输出(包含编译中间结果)都将存放在build/src目录

更改二进制的保存路径

SET指令重新定义EXECUTABLE_OUTPUT_PATH和LIBRARY_OUTPUT_PATH变量来指定最终的二进制的位置

SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)

SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)

安装

方法一是从代码编译后直接make install安装

方法二是打包时指定目录安装:例如简单的可以使用指令:make install DESTDIR=/tmp/test

稍微复杂一点可以使用指令:./configure -prefix=/usr

如何安装HelloWord

使用CMAKE一个新的指令:INSTALL

INSTALL的安装可以包括:二进制、动态库、静态库以及文件、目录、脚本等

使用CMAKE一个新的变量:CMAKE_INSTALL_PREFIX

目录树结构:

安装文件COPYRIGHT和README

INSTALL(FILE COPYRIGHT README DESTINATION share/doc/cmake)

FILES:文件

DISTINATION:

1、写绝对路径

2、可以写相对路径,相对路径实际是:${CMAKE_INSTALL_PREFIX}/<DESTINATION 定义的路径>

CMAKE_INSTALL_PREFIX默认是在/usr/local

cmake-DCMAKE_INSTALL_PREFIX=/usr 在cmake的时候指定CMAKE_INSTALL_PREFIX变量的路径

安装脚本runhello.sh

PROGRAMS:非目标文件的可执行程序安装(比如脚本之类)

INSTALL(PROGRAMS runhello.sh DESTINATION bin)

说明:实际安装到的是/usr/bin

安装doc中的hello.txt

一、是通过在doc目录简历CMakeLists.txt,通过install下的file

二、是直接在工作目录通过

INSTALL(FILE COPYRIGHT README DESTINATION share/doc/cmake)

DIRECTORY后面连接的是所在Source目录的相对路径

注意:abc和abc/有很大的区别

目录名不以/结尾:这个目录将被安装为目录路径下的

目录名以/结尾:被这个目录中的内容安装到目标路径

??

开始编译安装

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 21:52:22  更:2022-03-17 21:52:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:32:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码