cmake--安装

一, 目录结构

├── cmake-examples.conf
├── CMakeLists.txt
├── include
│          └── installing
│          └── Hello.h
└── src
         ├── Hello.cpp
         └── main.cpp

* link:CMakeLists.txt[] - Contains the CMake commands you wish to run
* link:cmake-examples.conf[] - An example configuration file
* link:include/installing/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(cmake_examples_install)

# 根据源码创建共享库

add_library(cmake_examples_inst SHARED src/Hello.cpp)

#添加头文件目录

target_include_directories(cmake_examples_inst
PUBLIC
${PROJECT_SOURCE_DIR}/include
)

# 创建可执行程序
add_executable(cmake_examples_inst_bin
src/main.cpp
)

# 链接动态库
target_link_libraries( cmake_examples_inst_bin
PRIVATE
cmake_examples_inst
)

# 安装bin文件到指定目录
install (TARGETS cmake_examples_inst_bin DESTINATION bin)

# 安装库文件到指定目录,在windows上可能有问题!!!
# install (TARGETS cmake_examples_inst LIBRARY DESTINATION lib)

# 安装头文件到指定目录
install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ DESTINATION include)

# 安装配置文件到指定目录
install (FILES cmake-examples.conf DESTINATION etc)

三,扩展分析

cmake提供安装文件的功能,通过执行make install将会安装编译后的可执行程序,配置文件,库文件等。

安装目录的目录前缀由变量CMAKE_INSTALL_PREFIX设置。在执行cmake程序的时候可以通过执行

类似下面这样的命令来设置CMAKE_INSTALL_PREFIX。

cmake .. -DCMAKE_INSTALL_PREFIX=/install/location

install(TARGETS cmake_example LIBRARY DESTINATION bin) 展开为

install(TARGETS cmake_example LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)

其他以此类推。

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

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

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

相关文章

ubuntu 关机重启

关机,重启 reboot (重启) shutdown -h now (立刻关机) shutdown -h 10 (10min后立刻关机) shutdown -h 20:05 (今天20:05立刻关机)

excel合并两列内容_excel新手问题:怎么把两列数据合并到一起?用这个公式

今天看见有新手在问:怎么把两列数据合并到一起?其实,这种情况在工作中会经常遇到,但很多人可能还在用复制粘贴的方法。只要掌握最简单的一个函数公式,就可以实现快速两列合并。第一步:掌握“&”运算符使…

Pycharm Anaconda 安装dlib

由于采用python3.7安装会出现各种问题,两种解决方法。 1)安装Cmake boost等(不推荐,麻烦且不容易成功)。 2)安装Anaconda,创建一个python3.6的环境。 这里使用第二种。 一、安装Anaconda 。 方法…

java 使用jasper_使用Jasper Reports以Java创建报告

java 使用jasper上周,我试图使用Jasper创建报告。 在这篇文章中,我将记录一些资源和链接,以便对任何寻求类似信息的人都有用。 我将介绍Jasper报告,示例和Dynamic Jasper的生命周期。 Jasper Reports是世界上最受欢迎的开源报告…

计算机科学基础知识(四): 动态库和位置无关代码

一、前言 本文主要描述了动态库以及和动态库有紧密联系的位置无关代码的相关资讯。首先介绍了动态库和位置无关代码的源由,了解这些背景知识有助于理解和学习动态库。随后,我们通过加-fPIC和不加这个编译选项分别编译出两个relocatable object file&…

安装后添加没有class library_《没有秘密的你》:戚薇曝光手机号,粉丝急忙添加后却甜哭了?...

现在大家对于戚薇都是非常熟悉的吧,现在她可以说是娱乐圈内非常受关注的一个明星了,因为自己的颜值和耿直的性格也是直接圈粉无数,当时自己没有很多名气的时候,更是因为自己的女儿增添了很多的人气。想必在今年夏天的时候&#xf…

ubuntu 硬盘使用情况

df (硬盘使用情况) df -h du (当前文件夹多大) du -h

执行器的Spring启动和安全性事件

Spring Boot Actuator提供了审核功能,用于在启用Spring Security的Spring Boot应用程序中发布和侦听与安全相关的事件。 默认事件是身份验证成功,身份验证失败和访问被拒绝,但是可以使用自定义事件进行扩展。 确保在项目中启用了Spring Boot…

docker 查看日志_8个优秀Docker容器监控工具,收藏了

Docker是目前使用最广泛的容器之一,但它并不总是像物理硬件一样可见。而使用docker容器监控工具有助于消除这种透明度的缺失。以下介绍8种优秀Docker容器监控工具。1.SolarWinds Server&Application MonitorSolarWinds Server&Application Monitor是一个应用…

ubuntu 打包压缩

打包 tar -cvf test.tar *.txt tar -cvf test.tar *.txt 解包 tar -xvf test.tar tar -xvf test.tar -C abc/ 解压到当前路径的abc目录下 打包压缩 tar -zcvf test.tar.gz *.txt 解压缩包 tar -zxvf test.tar -C abc/ 解压到当前路径的abc目录下 .tar.bz2格式…

计算机基础知识:什么是位、字节、字、KB、MB

位、字节、字、KB、MB 位:“位(bit)”是电子计算机中最小的数据单位。每一位的状态只能是0或1。 字节:8个二进制位构成1个“字节(Byte)”,它是存储空间的基本计量单位。1个字节可以储存1个英文字母或者半个汉字,换句话说&#xf…

Tr A(矩阵快速幂)

A为一个方阵&#xff0c;则Tr A表示A的迹&#xff08;就是主对角线上各项的和&#xff09;&#xff0c;现要求Tr(A^k)%9973。 Input 数据的第一行是一个T&#xff0c;表示有T组数据。 每组数据的第一行有n(2 < n < 10)和k(2 < k < 10^9)两个数据。接下来有n行&am…

matlab中的方波信号图片_基于Matlab的雷达信号处理仿真

这是一个较为基础的图文教程(含仿真代码)&#xff1a;利用MATLAB设计经典的雷达数字信号处理。该系统具备对雷达目标回波的处理能力&#xff0c;能够从噪声中将目标检测出来&#xff0c;并提取目标的距离、速度、角度信息。教程分五节完成&#xff0c;主要包括&#xff1a;第一…

ubuntu find

find ./ -name “*.txt” find ./ -size 1M (当前目录下大小为1M) sudo find ./ -size 1M &#xff08;大小为1M&#xff0c;sudo为获取权限&#xff09; sudo find ./ -size 1M &#xff08;大于为1M&#xff09; sudo find ./ -size -1M &#xff08;小于1M&#xff09…

git clone 一些简单笔记

自使用了git后&#xff0c;就彻底喜欢上了&#xff0c;深深体会到了自由的感觉&#xff0c;记录一些简单的笔记和使用心得&#xff0c;仅供留迹&#xff0c;以备后查。。。 git clone 命令参数&#xff1a; usage: git clone [options] [--] <repo> [<dir>]-v, --v…

github上java_GitHub上Java的Bloom Bloom实现

github上java布隆过滤器是集数据结构的一种 。 对于那些不了解的对象&#xff0c;“设置数据结构”仅包含一个主要方法。 它仅用于确定特定元素是否包含在一组元素中。 大多数数据结构&#xff08;例如Hash Map &#xff0c; Linked List或Array &#xff09;都可以相当容易地创…

Error:The supplied javaHome seems to be invalid. I cannot find the java executable

设置一下gradle的JVM路径就好 转载于:https://www.cnblogs.com/shimu/p/10708888.html

Linux启动nacos成功日志_微服务系列之Nacos配置中心

Nacos 介绍Nacos 是 Alibaba 公司推出的开源工具&#xff0c;用于实现分布式系统的服务发现与配置管理。英文全称 Dynamic Naming and Configuration Service&#xff0c;Na 为 Naming/NameServer 即注册中心&#xff0c;co 为 Configuration 即配置中心&#xff0c;Service 是…

ubuntu 常用快捷键、常用命令

ls 显示当前文件夹下文件 pwd 显示当前目录 history 显示以前命令 touch 创建文件 例子&#xff1a; touch 1.txt &#xff1b; touch1.py等等 mkdir 创建文件 例子&#xff1a;mkdir abc&#xff1b; mkdir abc/d; mkdir abc/123/a -p …