cmake和cmake install学习

news2024/11/14 11:15:49

cmake

设置cmake的C/C++编译标准

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_C_STANDARD 11)

add_library生成的默认是静态库还是动态库

https://blog.csdn.net/HandsomeHong/article/details/122401900
add_library()命令生成的默认库类型取决于第二个参数。如果第二个参数是STATIC,则生成静态库;如果第二个参数是SHARED,则生成动态库。如果没有指定第二个参数,则默认生成静态库。

cmake install

参考:https://blog.csdn.net/qq_38410730/article/details/102837401
Install功能一般是跟发布件相配合使用的,比如要发布rpm包、tar包等输出相关的可执行文件、lib、头文件等。

最常见步骤

mkdir build && cd build
cmake ..
make
make install

注意:cmake中的install()命令,只有在执行make install后才会生效。
install()命令最核心的就是干了这么件事:将各种lib、文件啥的"拷贝"到destination关键字定义的目录下。

定义cmake install时的相对地址前缀

https://blog.csdn.net/sinat_31608641/article/details/128473571
在执行cmake时:

cmake -DCMAKE_INSTALL_PREFIX=<你要的安装路径>

或者在cmake中

SET(CMAKE_INSTALL_PREFIX <你要安装的路径>)

install(DIRECTORY)

https://blog.csdn.net/sinat_31608641/article/details/128473571
在这里插入图片描述
注意上面红色字体说法不准确,经实测,如果想把整个abc目录一并拷过去,需要保证DESTINATION目录下必须事先已存在,否则会报目录不存在的错误:

在这里插入图片描述
执行上面的install命令,本意是想把整个vpnserver目录拷贝至bin目录下:

在这里插入图片描述
但是提示"file INSTALL cannot make directory"的错误,也就说其实还是只能按文件拷贝,不能拷贝整个目录。

install时遇到错误"cmake install TARGETS given target which does not exist"

原因是我的Target对象是个类似boost::asio的静态库,它估计是个中间文件找不到。
如果以发布为目睹,作为静态库被一个可执行程序用到时,那么在链接阶段会被自动大包到到可执行二进制文件中了,这样就不需要再单独install了(install时也会报找不到)。

RPM简介与基本使用

https://www.cnblogs.com/harrymore/p/8665154.html

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

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

相关文章

python-day3

第003天 函数和模块的使用 定义函数 在python中可以使用def关键字来定义函数&#xff0c;和变量一样每个函数也有一个名字&#xff0c;而且命名规则和变量的命名规则是一致的。在函数名后面的圆括号中可以放置传递给函数的参数&#xff0c;程序中函数的参数就是相当于数学上…

企业级信息系统开发学习笔记05 初探Spring AOP

文章目录 一、学习目标二、Spring AOP&#xff08;一&#xff09;AOP基本含义&#xff08;二&#xff09;AOP基本作用&#xff08;三&#xff09;AOP和OOP对比&#xff08;四&#xff09;AOP使用方式&#xff08;五&#xff09;AOP基本概念 三、采用配置方法使用AOP&#xff08…

STM32实验-高级定时器输出指定个数PWM

STM32F103ZET6中有TIM1,TIM8两个高级定时器&#xff0c;每一定时器都有 1、一个16位向上、向下、向上/下自动装载计数器 2、一个16位预分频器和四个独立从输入输出通道 3、每一个通道都可用于输入捕获、输出比较、PWM和单脉冲模式&#xff08;除了基本定时器&#xff0c;高级定…

Cesium-源码修改-gltf增加纹理贴图改变3dtiles外观

一、需求 Cesium支持加载gltf和3dtiles等三维数据模型&#xff0c;实现了很好的封装&#xff0c;往往只需要给一个uri就能加载模型文件&#xff0c;并实现贴图渲染等。但是好的封装带来的问题是如果开发者想要自定义贴图&#xff0c;那该怎么办&#xff1f;不得不从源码入手。 …

条码控件Aspose.BarCode入门教程(6):如何在C# 中生成GS1-128 条码

Aspose.BarCode for .NET 是一个功能强大的API&#xff0c;可以从任意角度生成和识别多种图像类型的一维和二维条形码。开发人员可以轻松添加条形码生成和识别功能&#xff0c;以及在.NET应用程序中将生成的条形码导出为高质量的图像格式。 Aspose API支持流行文件格式处理&am…

三、Golang环境搭建及打包和工具链

一、环境搭建 从https://golang.google.cn/dl/下载安装即可 新建GO_HOME 系统环境变量&#xff0c;指向go的安装目录 在终端输入go dev即可测试有无安装成功 二、包 所有Go程序的程序都会组织成若干组文件&#xff0c;每组文件被称为一个包。每个包的代码都可以作为很小的复用…

webpack 5 实战(1)

一、为什么使用webpack 个人将前端开发分为三个阶段&#xff1a; 1.1 Web1.0 Web1.0前端主要工作&#xff1a; 前端主要编写静态页面对于JavaScript的使用&#xff0c;主要是进行表单验证和动画效果制作 1.2 Web2.0之AJAX 伴随着AJAX的诞生&#xff0c;前端的工作模式也发…

什么牌子的蓝牙耳机音质最好?盘点2023音质最好的蓝牙耳机

近几年&#xff0c;蓝牙耳机在日常生活中的出现频率越来越高&#xff0c;不管是运动、听歌、追剧、玩游戏等等都能看到蓝牙耳机的身影。接下来&#xff0c;我来给大家盘点几款音质好的蓝牙耳机&#xff0c;感兴趣的朋友可以了解一下。 一、南卡小音舱Lite2蓝牙耳机 参考价&…

使用 WSL 在 Windows 上安装 Linux提示无法解析服务器的名称或地址及0x80370114问题解决

开发人员可以通过WSL在windows电脑上安装Linux发行版&#xff0c;并可以直接在电脑上使用Linux应用程序、实用程序和Bash命令行工具等。 先决条件 必须运行 Windows 10 版本 2004 及更高版本&#xff08;内部版本 19041 及更高版本&#xff09;或 Windows 11 才能使用以下命令…

结合企业实践来规范你的Git commit(含插件使用指南)

&#x1f3c6; 文章目标&#xff1a;了解通用的Git commit规范&#xff0c;并在企业的团队内部进行实践。 &#x1f340; 如何规范你的Git commit&#xff08;理论结合企业的实践&#xff09; ✅ 创作者&#xff1a;Jay… &#x1f389; 个人主页&#xff1a;Jay的个人主页 &am…

论文学习——数据挖掘技术在水文数据分析中的应用

文章目录0 引言1 数据挖掘技术及工具1.1 什么是数据挖掘&#xff1f;1.2 数据挖掘的过程&#xff1f;1.3 常用的数据挖掘技术1.4 ODM2 水文数据分析系统功能设计3 系统实现与应用3.1 数据获取与清理3.2 模型建立4 结语2012年12月 计算机工程与设计 0 引言 洪水是现实生活中频发…

数据结构_第十三关(3):归并排序

目录 归并排序 1.基本思想&#xff1a; 2.原理图&#xff1a; 1&#xff09;分解合并 2&#xff09;数组比较和归并方法&#xff1a; 3.代码实现&#xff08;递归方式&#xff09;&#xff1a; 归并排序的非递归方式 原理&#xff1a; 情况1&#xff1a; 情况2&#…

《剑指大前端全栈工程师》--大前端时代全站式开发,直指大厂P7技术专家

【内容提要】 实力打造大前端时代&#xff0c;走在时代的钱端&#xff01;   实战驱动教学&#xff0c;探索前端黑科技。紧跟企业实际技术选型&#xff0c;追求技术的实用性与前瞻性完美结合&#xff01;   本书对大前端技术栈进行了全面的讲解&#xff0c;内容涉及HTML5CS…

AI产品铺天盖地,企业却用不上?

近年来,随着人工智能技术的飞速发展,越来越多的企业开始关注并尝试使用人工智能技术来提高业务效率和降低成本。然而,国内企业使用人工智能技术仍然存在一些困难和问题,主要原因如下: 国外产品不稳定或不安全 目前国内市场上存在许多国外的AI产品,例如ChatGPT、GPT-4等,但这些…

QT CTK控件 CTK开发(二)

CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。为医学成像提供一组统一的基本功能;促进代码和数据的交互及结合;避免重复开发;在工具包(医学成像)范围内不断扩展到新任务,而不会增加现有任务的负担;整合并适应成功的解决方案。 本专栏文章较为全面…

教你如何搭建物业-后勤管理系统,demo可分享

1、简介 1.1、案例简介 本文将介绍&#xff0c;如何搭建物业-后勤管理。 1.2、应用场景 该应用包含疫情上报、绿化、安保等管理功能。 2、设置方法 2.1、表单搭建 1&#xff09;新建表单【返区登记】&#xff0c;字段设置如下&#xff1a; 名称类型名称类型姓名单行文本…

【历史上的今天】3 月 17 日:苹果起诉微软;CN 域名开放注册;赛博朋克之父出生

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2023 年 3 月 17 日&#xff0c;在 1958 年的今天&#xff0c;我国第一台黑白电视机诞生。当时&#xff0c;我国电视机研制技术与日本基本处在同一起跑线&#xff0c;是…

四十六、docker-compose部署

一个项目肯定包含多个容器&#xff0c;每个容器都手动单独部署肯定费时费力。docker-compose可以通过脚本来批量构建镜像和启动容器&#xff0c;快速的部署项目。 使用docker-compose部署主要是编写docker-compose.yml脚本。 一、项目结构 不论是Dockerfile还是docker-compo…

如果你想从事人工智能职业,学习Python吧

人工智能并不会抢走你的工作&#xff0c;至少目前还不会。人工智能和机器学习&#xff08;AI/ML&#xff09;最好的应用是补充人类的创造力&#xff0c;而不是取代它。具有讽刺意味的是&#xff0c;最好的大型语言模型&#xff08;LLMs&#xff09;可能是通过使用受版权保护的人…

本地环境配置自签名HTTPS证书

在本地使用的线上的https证书的话&#xff0c;每三个月需要更新一次比较繁琐&#xff0c;用本地证书也可以满足调试需求也会方便许多 下载签名工具&#xff1a; https://github.com/FiloSottile/mkcert/releases/tag/v1.4.4 根据需求下载对应系统的版本&#xff0c;以64位的win…