cmake的单目录和多目录的使用(Linux和Windows)

简介: 本文介绍了在Windows和Linux平台上使用CMake构建单目录和多目录项目的步骤,包括如何配置CMakeLists.txt文件以及如何生成和使用可执行文件、库文件。

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是跨平台的

目录
相关文章
|
20天前
|
安全 Linux 生物认证
Nexpose 8.25.0 for Linux & Windows - 漏洞扫描
Nexpose 8.25.0 for Linux & Windows - 漏洞扫描
67 0
Nexpose 8.25.0 for Linux & Windows - 漏洞扫描
|
1月前
|
存储 Linux
Linux 目录名称
Linux系统目录结构简介:根目录(/)下包含各类功能目录,如/bin存放用户命令,/etc存储配置文件,/home为用户主目录,/var记录日志等可变数据,/usr存放用户工具,/tmp用于临时文件。各目录分工明确,保障系统有序运行。(238字)
184 5
|
1月前
|
安全 Linux iOS开发
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
275 53
Binary Ninja 5.1.8104 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
24天前
|
安全 Linux 生物认证
Nexpose 8.24.0 for Linux & Windows - 漏洞扫描
Nexpose 8.24.0 for Linux & Windows - 漏洞扫描
96 1
Nexpose 8.24.0 for Linux & Windows - 漏洞扫描
|
24天前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
90 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
25天前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
150 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
1月前
|
Linux API iOS开发
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
152 14
Binary Ninja 4.2.6455 (macOS, Linux, Windows) - 反编译器、反汇编器、调试器和二进制分析平台
|
21天前
|
Linux 虚拟化 iOS开发
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
231 0
VMware Remote Console 13.0.1 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
|
2月前
|
JSON 安全 Linux
Nexpose 8.22.0 for Linux & Windows - 漏洞扫描
Nexpose 8.22.0 for Linux & Windows - 漏洞扫描
118 1
Nexpose 8.22.0 for Linux & Windows - 漏洞扫描
|
1月前
|
Linux iOS开发 计算机视觉
GIMP 3.0.6 (Linux, macOS, Windows) 发布 - 免费开源图像编辑器
GIMP 3.0.6 (Linux, macOS, Windows) 发布 - 免费开源图像编辑器
153 0

热门文章

最新文章