cmake的单目录和多目录的使用(Linux和Windows)
Windows上的使用是用VS2022创建一个cmake项目

然后就可以自动生成CMakeLists.txt和对应的cpp和头文件,其中CMakeLists.txt是最关键的,后面那两个没有也行,自己建cpp文件和头文件。
这个CMakeLists.txt的配置是:
#这个是版本号,也可以不用写,如果版本低,就别写。
cmake_minimum_required (VERSION 3.8)
#这个是项目名称,也就是放CMakeLists.txt的文件夹
project(CMakeProject2)
#这个sb是个变量,src是个目录,./src就是文件的地址,这个sb存的就是src里面的所有可编译文件。
aux_source_directory(./src sb)
#这个是生成可执行文件,CMakeProject2这个就是可执行文件名默认是不加.exe后缀的,这个可以自己取不要急,CMakeProject2.cpp就是你c加加的文件
add_exEcutable(CMakeProject2 ${sb} CMakeProject2.cpp)
这个单目录就实现了。后面就可以cmake . 和make了。

这个多目录就是在原来的基础上加了include_directories("./src")这个是引用目录,就是在这个上,你不同目录的cpp就可以include 其他cpp文件或者头文件。
add_subdirectory(src)#添加外部目录
最后是target_link_libraries(可执行文件 其他cpp文件),这个其他cpp文件在这个时候应该是dll文件或者lib文件。
其他目录,就比如说我的src目录,也要有一个CMakeLists.txt文件,这个文件是为了说明这个目录里面的cpp文件是干什么的

这个就是src里面的CMakeLists.txt文件里面的全部代码,第一行代码还是之前说的,用一个变量去存储这个文件里面的所有可编译文件,这个.就是这个目录里面的,(代表地址)
先 cmake .这个src里面的并且make,它会自动生成。

当然如果使用vs2022,就只需要运行一下并保存,编译器自动会cmake和make。
后面就是cmake . 主目录的并且make,就大功告成了,如果不加shared的话就是静态库,当然如果不喜欢搞这个静态和动态库的话,也可以不这样搞
如果不搞动态库和静态库就要这样写主目录的CMakeLists.txt,并且不需要其他目录的CMakeLists.txt

看看我的其他目录没有CMakeLists.txt文件

这个是不使用静态库和动态库的方法。
注意:每次修改CMakeLists.txt时都要手动保存,按键是Ctrl +S
这个是Windows的,还有Linux的
Linux的其实操作是一样的,毕竟cmake是跨平台的
cmake的单目录和多目录的使用(Linux和Windows)的更多相关文章
- CMake在Visual Studio下保持目录结构
CMake在Visual Studio下保持目录结构 原理 主要通过CMAKE自带函数source_group来设定. 需要把add_executable()函数进行封装,包裹一层source_gro ...
- Linux编译Windows共享目录下代码
Linux编译Windows共享目录下代码(金庆的专栏)万神服务器代码是跨平台的.平时策划在Windows上开自己的服务器测试,测试和发布服务器为Linux.开发时,先在Windows上编译测试,再到 ...
- Linux目录结构 重要目录结构详细
1.1 /etc/hosts ip地址与主机名(域名)的对应关系 解析主机名 ping www.baidu.com 解析成10.0.0.200 1.产品测试 2 用主机名互相访问 1.2 /et ...
- 在Linux下和Windows下遍历目录的方法及如何达成一致性操作
最近因为测试目的需要遍历一个目录下面的所有文件进行操作,主要是读每个文件的内容,只要知道文件名就OK了.在Java中直接用File类就可以搞定,因为Java中使用了组合模式,使得客户端对单个文件和文件 ...
- Swift - 文件目录路径获取及数据储存(Home目录,文档目录,缓存目录)
iOS应用程序只能在自己的目录下进行文件的操作,不可以访问其他的存储空间,此区域被称为沙盒. 应用沙盒结构分析 1.应用程序包:包含了所有的资源文件和可执行文件 2.Documents:保存应用运 ...
- JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)
1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...
- 使用scp将文件/目录拷贝到另一台Linux主机上
如何将一台Linux主机上的文件或目录拷贝到另一台Linux主机上,scp命令可以实现该需求 前提条件:两台Linux主机处于同一网段,可以互相ping通 操作如下: 文件拷贝 ①将本地文件拷贝到远端 ...
- SVN的文件夹链接(目录链接,目录映射,svn:externals)
首先大家可以看下SVN的文件夹链接太强大了!(目录链接,目录映射,svn:externals),我就是看了这篇文章才敢大刀阔斧的把项目里的外链修改成正确的链接. 问题: 我们的项目里,服务器脚本工程s ...
- 0816 1459 json & pickle ,目录导入,目录规范
---恢复内容开始--- 1.json & pickle 磁盘上只能存储字符串或二进制数据,直接存字典.列表.元组等是存不了的,所以需要把各种数据转换成字符串格式,然后再存到硬盘. 直接将一个 ...
- du -sh 目录名称 查看目录大小
du -sh 目录名称 查看目录大小 df -h 查看磁盘使用情况
随机推荐
- 开机自动打开termux以及启动termux的服务
ps:因为我们的服务是安装在平板上面的termux,客户不想维护麻烦,如果平板重启之后还需要手动启动ternux,还要开启命令启动服务,这样比较麻烦,所以研究如下操作 1.安装macroDroid 直 ...
- 数据库中limit 和 offset 使用区别
题:查找最晚入职员工的所有信息 1,SELECT * FROM employees ORDER BY hire_date DESC LIMIT 0,1; 解:对列hire_date分组后升序,从下标( ...
- 关于三维模型OSGB格式轻量化在数据存储的重要性浅析
关于三维模型OSGB格式轻量化在数据存储的重要性浅析 三维模型的OSGB格式是一种常见的数据格式,用于存储和传输地理信息系统(GIS)中的三维地图数据.随着技术的不断发展,三维模型的应用越来越广泛,包 ...
- Redis的五大数据类型的数据结构
概述 Redis底层有六种数据类型包括:简单动态字符串.双向链表.压缩列表.哈希表.跳表和整数数组.这六种数据结构五大数据类型关系如下: String:简单动态字符串 List:双向链表.压缩列表 ...
- 【译】在 Visual Studio 中处理图像变得更容易了
任何 Web.桌面或移动开发人员都经常使用图像.你可以从 C#.HTML.XAML.CSS.C++.TypeScript 甚至代码注释中引用它们.有些图像是本地的,有些存在于线上或网络共享中,而其他图 ...
- KRPano最新官方文档中文版
KRPano最新官方文档中文版: KRPano作为VR全景开发中常用的工具软件,深受广大开发者喜爱,但由于软件本身是国外软件,因此官方的文档都是以英文为主,对于一些国内不太熟悉英文的开发者来说比较不友 ...
- 在线PNG, JPG, BMP 转ICO图标,适用WINDOWS XP, VISTA, 7, 8, 10
在线PNG, JPG, BMP 转ICO图标网址: http://static.krpano.tech/image2ico 该网站可以把PNG, JPG和BMP图片转换成包含多个层级的ICO图标, 可 ...
- Record - Nov. 20th, 2020 - Exam. SOL
LOC 2020.11.20 - Prob. 1 Desc. & Link. \(C=2^{k}\bmod(a+b+c)\) #include <cstdio> typedef l ...
- C#开源、功能强大、免费的Windows系统优化工具 - Optimizer
前言 今天给大家推荐一款由C#开源.功能强大.免费的Windows系统优化工具 - Optimizer. 工具介绍 Optimizer是一款功能强大的Windows系统优化工具,可帮助用户提高计算机性 ...
- 谱图论:Laplacian二次型和Markov转移算子
以下部分是我学习CMU 15-751: TCS Toolkit的课堂笔记.由于只是个人笔记,因此许多地方在推导上可能不那么严谨,还望理论大佬多多包涵. 1 问题定义 1.1 无向图\(G\) 在本文中 ...