IT评测·应用市场-qidao123.com
标题:
【Linux】CMake安装及利用方法 {安装CMake;编写CMakeLists.txt文件;天生M
[打印本页]
作者:
钜形不锈钢水箱
时间:
2025-3-15 16:15
标题:
【Linux】CMake安装及利用方法 {安装CMake;编写CMakeLists.txt文件;天生M
CMake是一种跨平台编译工具,它允许开发者编写CMakeLists.txt文件,然后通过cmake命令将这些文件转化为make所需的Makefile文件,末了利用make命令编译源代码天生可执行步伐或库文件。以下是CMake的利用方法:
一、安装CMake
下载CMake安装包
:
访问CMake官方网站(https://cmake.org/download/),下载实用于利用体系的CMake安装包。
安装CMake
:
对于Windows体系,双击下载好的CMake安装包,启动安装步伐,选择CMake的安装路径,并完成安装。
对于其他利用体系,如Linux或macOS,通常可以通过包管理器(如apt、yum、brew等)来安装CMake。
我是ubuntu服务器,利用sudo apt install camke -y命令进行安装
验证安装
:
打开命令行工具(如Windows的命令提示符、Linux的终端等),输入cmake --version,如果体现出CMake的版本信息,阐明安装乐成。
二、编写CMakeLists.txt文件
CMakeLists.txt文件是CMake的核心配置文件,它包含了项目的编译信息。以下是一个简单的CMakeLists.txt文件的示例:
# 指定CMake编译最低要求版本
cmake_minimum_required(VERSION 3.10)
# 给项目命名
project(MyProject)
# 指定C++标准(可选)
set(CMAKE_CXX_STANDARD 11)
# 收集源文件并赋值给变量
set(SRC_LIST main.cpp) # 可以添加多个源文件,如 set(SRC_LIST main.cpp foo.cpp bar.cpp)
# 指定头文件目录(如果有)
include_directories(${PROJECT_SOURCE_DIR}/include)
# 指定生成可执行文件的名称和源文件
add_executable(MyExecutable ${SRC_LIST}) # 这里要注意对变量的引用格式
复制代码
三、天生Makefile文件并编译项目
天生Makefile文件
:
打开命令行工具,导航到包含CMakeLists.txt文件的目次。
执行cmake .命令(或者cmake -S . -B build命令来指定源目次和构建目次),CMake将读取CMakeLists.txt文件并天生Makefile文件。
编译项目
:
执行make命令(如果利用了构建目次,则必要在该目次中执行make),Makefile文件将被用来编译项目并天生可执行文件。
关于make命令的利用方法,请查阅文章【Linux体系】开发工具(下) {调试器gdb,自动化构建工具make/Makefile,多文件编译,代码管理平台git}_make debug模式-CSDN博客
四、高级配置选项
CMake还支持很多高级配置选项,如设置编译选项、指定目标属性、添加子目次等。以下是一些常用的高级配置选项:
设置编译选项
:
add_compile_options(-Wall -Wextra -std=c++11)
复制代码
指定目标属性
:
set_target_properties(MyExecutable PROPERTIES OUTPUT_NAME "MyExecutableName")
复制代码
添加子目次
:
add_subdirectory(subdir)
复制代码
此中subdir是包含另一个CMakeLists.txt文件的子目次。
链接库文件
:
如果项目必要链接外部库文件,可以利用target_link_libraries命令。例如:
target_link_libraries(MyExecutable MyLibrary)
复制代码
此中MyLibrary是外部库的名称(可能必要指定库的路径和名称前缀/后缀)。
添加预处置惩罚器定义:
这个命令允许你为特定的目标添加预处置惩罚器定义,而且可以选择是否将这些定义导出到依靠的目标
target_compile_definitions(my_target PRIVATE MY_MACRO)
复制代码
PRIVATE是私有的不会导出到依靠的目标,而PUBLIC是公有的则相反
五、常见题目与解决方案
如何找到全部源文件
?
可以利用aux_source_directory命令来找到指定目次下的全部源文件,并将其存储在一个变量中。例如:
aux_source_directory(. SRC_LIST)
add_executable(MyExecutable ${SRC_LIST})
复制代码
如何指定编译目标
?
可以利用project命令来指定项目的名称和编译目标。例如:
project(MyProject)
复制代码
如何区分Debug和Release版本
?
可以在构建时通过cmake -DCMAKE_BUILD_TYPE=Debug或cmake -DCMAKE_BUILD_TYPE=Release来指定编译范例。此外,还可以在CMakeLists.txt文件中利用条件语句来设置不同的编译选项。
源目次和构建目次分别存放什么?
在利用CMake进行项目管理时,源目次(Source Directory)和构建目次(Build Directory)是两个重要的概念。它们各自承担着不同的角色,共同协作以完成项目的构建过程。
源目次(source)
源目次是存放项目源代码的目次。这个目次通常包含了项目的源文件(如.cpp、.h等)、CMakeLists.txt配置文件以及其他与源代码相关的资源文件。CMakeLists.txt文件是CMake的核心配置文件,它定义了项目的构建规则、源文件列表、依靠关系等关键信息。
可以将项目目次作为源目次,不另行创建。
构建目次(build)
构建目次是CMake用于存放构建过程中天生的文件和临时文件的目次。这些文件包括天生的Makefile文件、编译过程中产生的中央文件(如目标文件.o或.obj)、最终天生的可执行文件或库文件等。构建目次与源目次是分开的,这种分离的做法有助于保持源目次的整洁性,制止构建过程中产生的文件对源代码造成污染。
通过以上步调和配置选项,开发者可以利用CMake来构建和管理跨平台项目。CMake的机动性和可扩展性使其成为现代软件开发中不可或缺的工具之一。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4