【CMake】install用法

以前一直不清楚install的具体作用,现在明白了,其实就是把你的文件(生成的二进制,源代码或者任意)给复制(也可以说安装)到指定路径。

将二进制安装到Bin文件夹

比如我生成了一个test程序,一般来说你是把构建文件都写在了Build文件夹下面。然后make后,test也是在build下面,现在我想把test安装到项目目录的bin文件夹下面。
那么你可以这么些cmakelist

cmake_minimum_required(VERSION 3.0.0)
project(static-lib VERSION 0.1.0 LANGUAGES C CXX)add_executable(test main.cpp)install(TARGETS test  DESTINATION bin)

DESTINATION指定了安装的目录,如果是相对目录,则需要注意CMAKE_INSTALL_PREFIX这个变量,可以在cmakelist中用set指定,也可以在使用cmake命令是用-D指令
具体执行命令

1.生成构建树,假设现在在build目录
cmake ..
2.编译
make
3. 安装
make install

现在test程序到了bin文件夹下面。 基本就是这么个用法,跟复制文件差不多,但是能设置权限种种。
下面再举个例子,如果是Debug编译就把程序放在bin/debug,release就在bin/release

将debug和release程序分开安装

cmake_minimum_required(VERSION 3.0.0)
project(static-lib VERSION 0.1.0 LANGUAGES C CXX)add_executable(test main.cpp)install(TARGETS test CONFIGURATIONS Debug DESTINATION bin/debug)
install(TARGETS test CONFIGURATIONS Release DESTINATION bin/release)

就是指定了CONFIGURATIONS 这个参数,还有一些其他参数,具体可见文档https://cmake.org/cmake/help/book/mastering-cmake/chapter/Install.html

https://developer.aliyun.com/article/1465170 这篇文章也不错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【教学类-64-02】20240610色块眼力挑战(二)-2-25宫格色差10-100(10倍)(星火讯飞)

背景需求 以下的色块眼里挑战需要人工筛选图片,非常繁琐。 【教学类-64-01】20240607色块眼力挑战(一)-0-255随机底色-CSDN博客文章浏览阅读446次,点赞12次,收藏5次。【教学类-64-01】20240607色块眼力挑战&#xff…

Linux安装Docker | 使用国内镜像

环境 CentOS7 先确认能够上网 curl www.baidu.com返回该输出说明网络OK 步骤一:安装gcc 和 gcc-c yum -y install gccyum -y install gcc-c步骤二:安装Docker仓库 yum install -y yum-utils接下来配置yum的国内镜像 yum-config-manager --add-re…

tomcat服务器之maxHttpHeaderSize

背景:在OA流程表单中,填写了200条数据,一提交,秒报400错误,且请求没有打到后端中(无报错日志),一开始以为是谷歌浏览器的问题,可百度上关于这个错误的解决方案都是清除缓…

转让北京劳务分包地基基础施工资质条件和流程

地基基础资质转让流程是怎样的?对于企业来说,资质证书不仅是实力的证明,更是获得工程承包的前提。而在有了资质证书后,企业才可以安心的准备工程投标,进而在工程竣工后获得收益。而对于从事地基基础工程施工的企业,需…

5、Spring之Bean生命周期~创建Bean(1)

5、Spring之Bean生命周期~创建Bean 创建BeanresolveBeanClass()方法doResolveBeanClass()方法 resolveBeforeInstantiation()方法 创建Bean Spring Bean的生命周期首先会经过扫描,然后回经过合并,合并之后就会通过getBean()方法去获取bean,ge…

特种设备起重机指挥题库附答案

1、【多选题】力的三要素是指:( )。(ACD) A、力的大小 B、力的单位 C、力的方向 D、力的作用点 2、【多选题】司索作业规范正确的要求是( )(ABC) A、吊点正确 B、吊索挂设合理 C、绑扎牢靠 D、吊索长短一致 3、【多选题】圆柱形物体兜吊时,一定要放空圈&#…

【python】python GUI编程--tkinter模块初探

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

归并排序(Merge_sort)

归并排序: 归并的意思是将两个数组合成为一个,而归并排序就是:将一个数组分为许多个,让多个数组按大小归并,直到归并为一个; 基本思想为: 将一个数组拆分为许多个两两结合的数组,…

树的4种遍历

目录 树的四种遍历方式的总结 1. 前序遍历(Pre-order Traversal) 2. 中序遍历(In-order Traversal) 3. 后序遍历(Post-order Traversal) 4. 层序遍历(Level-order Traversal 或 广度优先遍…

引入别人的安卓项目报错

buildscript { repositories { google() jcenter() } dependencies { classpath com.android.tools.build:gradle:4.1.0 // 使用最新版本的插件 } } allprojects { repositories { google() jcenter() } } 在…

Feign是如何发送http请求的底层源码

Feign 的底层源码涉及多个组件和库来实际发送 HTTP 请求。Feign 的主要目标是提供一个声明式的 Web Service 客户端接口,而底层实现则依赖于其他库(如 OkHttp、Apache HttpClient 等)来发送实际的 HTTP 请求。 1、接口代理 当你通过 Feign …

Keil软件仿真的使用

一、软件的初始化设置 初始设置可以按照下图,这里我使用的是STM32F103C8T6,所以单片机型号为STM32F103C8,这个设置在Debug目录下。然后进行时钟的设置,我们板上晶振为8M,这里将时钟改为8. 或许有人想问如果是别的型号单…

Effective Java 1 用静态工厂方法代替构造器

知识点上本书需要会Java语法和lang、util、io库,涉及concurrent和function包。 内容上主要和设计模式相关,代码风格力求清晰简洁,代码尽量复用,组件尽量少依赖,错误尽早发现。 第1个经验法则:用静态工厂方…

Chroium 源码目录结构分析(1):源码目录体积一栏

获取源码 首先,我们拉一份最新的源代码(笔者是2024.6.6日拉取的): fetch --nohistory chromium 源码预处理 如果运行build,会生成许多生成的代码,因此我们不运行build。 然后,把干扰后续分析…

sqlilabs靶场安装

05-sqllabs靶场安装 1 安装 1 把靶场sqli-labs-master.zip上传到 /opt/lampp/htdocs 目录下 2 解压缩 unzip sqli-labs-master.zip3 数据库配置 找到配置文件,修改数据库配置信息 用户名密码,修改为你lampp下mysql的用户名密码,root/123456host:la…

语法的时态1——一般现在时(1)

定义:一般现在时用来表示经常发生的动作,以及客观事实。 一般现在时的构成以及标志词 1.一般现在时的结构 (1)主系表结构 构成:主语be(am,is,ear)其他。属于状态句。 I…

贪吃蛇双人模式设计(2)

敲上瘾-CSDN博客控制台程序设置_c语言控制程序窗口大小-CSDN博客贪吃蛇小游戏_贪吃蛇小游戏csdn-CSDN博客​​​​​​​ 一、功能实现: 玩家1使用↓ → ← ↑按键来操作蛇的方向,使用右Shift键加速,右Ctrl键减速玩家2使用W A S D按键来操…

matlab演示地月碰撞

代码 function EarthMoonCollisionSimulation()% 初始化参数earth_radius 6371; % 地球半径,单位:公里moon_radius 1737; % 月球半径,单位:公里distance 384400; % 地月距离,单位:公里collision_tim…

Astar路径规划算法复现-python实现

# -*- coding: utf-8 -*- """ Created on Fri May 24 09:04:23 2024"""import os import sys import math import heapq import matplotlib.pyplot as plt import time 传统A*算法 class Astar:AStar set the cost heuristics as the priorityA…

Kafka集成flume

1.flume作为生产者集成Kafka kafka作为flume的sink,扮演消费者角色 1.1 flume配置文件 vim $kafka/jobs/flume-kafka.conf # agent a1.sources r1 a1.sinks k1 a1.channels c1 c2# Describe/configure the source a1.sources.r1.type TAILDIR #记录最后监控文件…