电商网站建设课件,wordpress网页太大,石家庄科技网站建设,搜题公众号怎么制作文章目录 前言一、变量1.1 为什么需要变量#xff1f;1.2 set的使用1.3 使用变量 二、指定C标准2.1 为什么需要指定C标准#xff1f;2.2 指定使用的C标准 三、指定输出路径3.1 为什么需要指定输出路径#xff1f;3.2 设置输出路径 总结 前言
CMake是一个强大的构建工具1.2 set的使用1.3 使用变量 二、指定C标准2.1 为什么需要指定C标准2.2 指定使用的C标准 三、指定输出路径3.1 为什么需要指定输出路径3.2 设置输出路径 总结 前言
CMake是一个强大的构建工具它通过简化项目的构建和配置过程使得跨平台开发变得更加容易。CMake使用简洁的语法和自动生成的构建文件可以帮助开发者更轻松地管理和组织项目。在本教程中我们将学习如何使用CMake定义变量、指定C标准以及指定输出路径。 一、变量
1.1 为什么需要变量
在CMake中变量是存储数据的容器它们用于传递信息、控制流程以及配置构建过程。定义变量可以提高代码的可读性和可维护性同时也方便在不同的地方共享相同的信息。通过变量我们可以轻松地调整配置选项、文件路径等从而适应不同的开发环境和需求。
1.2 set的使用
# SET 指令的语法是
# [] 中的参数为可选项, 如不需要可以不写
SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])在一个文件夹中我们有下面这些文件
.
├── build
├── CMakeLists.txt
├── func.c
├── func.h
└── main.c这2个源文件需要反复被使用每次都直接将它们的名字写出来确实是很麻烦此时我们就需要定义一个变量将文件名对应的字符串存储起来在cmake里定义变量需要使用set。
set(SRC_LIST main.c func.c)比如像上面这样前面为变量名后面为你要赋的值
1.3 使用变量
如果你想使用变量你需要这样${变量名} 如下所示
cmake_minimum_required(VERSION 3.0.0)
project(test)set(SRC_LIST main.c func.c)add_executable(app ${SRC_LIST})ubuntuubuntu-2204:~/C/csdn-cmake$ cd build/
ubuntuubuntu-2204:~/C/csdn-cmake/build$ cmake ..
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/C/csdn-cmake/build
ubuntuubuntu-2204:~/C/csdn-cmake/build$ make
[ 33%] Building C object CMakeFiles/app.dir/main.c.o
[ 66%] Building C object CMakeFiles/app.dir/func.c.o
[100%] Linking C executable app
[100%] Built target app
ubuntuubuntu-2204:~/C/csdn-cmake/build$ ./app
Hello CMake
ubuntuubuntu-2204:~/C/csdn-cmake/build$ 可以看到成功的cmake和make了
二、指定C标准
2.1 为什么需要指定C标准
指定C标准是为了确保项目在不同的编译器和平台上都能正确编译和运行。不同的C标准包含了不同的语法和特性开发者需要根据项目的需要选择合适的标准。通过在CMake中指定C标准我们可以保证代码在各种环境中的一致性。
2.2 指定使用的C标准
在编写C程序的时候可能会用到C11、C14、C17、C20等新特性那么就需要在编译的时候在编译命令中制定出要使用哪个标准
$ g *.cpp -stdc11 -o app上面的例子中通过参数-stdc11指定出要使用c11标准编译程序C标准对应有一宏叫做DCMAKE_CXX_STANDARD。在CMake中想要指定C标准有两种方式 在 CMakeLists.txt 中通过 set 命令指定
#增加-stdc11
set(CMAKE_CXX_STANDARD 11)
#增加-stdc14
set(CMAKE_CXX_STANDARD 14)
#增加-stdc17
set(CMAKE_CXX_STANDARD 17)
在执行 cmake 命令的时候指定出这个宏的值#增加-stdc11
cmake CMakeLists.txt文件路径 -DCMAKE_CXX_STANDARD11
#增加-stdc14
cmake CMakeLists.txt文件路径 -DCMAKE_CXX_STANDARD14
#增加-stdc17
cmake CMakeLists.txt文件路径 -DCMAKE_CXX_STANDARD17就像下面这样
ubuntuubuntu-2204:~/C/csdn-cmake/build$ cmake ../CMakeLists.txt -DCMAKE_CXX_STANDARD11
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/ubuntu/C/csdn-cmake
ubuntuubuntu-2204:~/C/csdn-cmake/build$三、指定输出路径
3.1 为什么需要指定输出路径
指定输出路径可以让我们更好地组织项目的构建结果。默认情况下CMake会将可执行文件和库放在项目的构建目录中但在实际项目中我们可能希望将这些文件放在特定的文件夹中以便更好地组织项目结构。
3.2 设置输出路径
在CMake中指定可执行程序输出的路径也对应一个宏叫做EXECUTABLE_OUTPUT_PATH它的值还是通过set命令进行设置:
文件夹层级如下
ubuntuubuntu-2204:~/C/csdn-cmake$ tree -L 1
.
├── bin
├── build
├── CMakeLists.txt
├── func.cpp
├── func.h
└── main.cpp2 directories, 4 filesset(HOME /home/ubuntu/C/csdn-cmake/)
set(EXECUTABLE_OUTPUT_PATH ${HOME}/bin)第一行定义一个变量用于存储一个绝对路径 第二行将拼接好的路径值设置给EXECUTABLE_OUTPUT_PATH宏 如果这个路径中的子目录不存在会自动生成无需自己手动创建 由于可执行程序是基于 cmake 命令生成的 makefile 文件然后再执行 make 命令得到的所以如果此处指定可执行程序生成路径的时候使用的是相对路径 ./xxx/xxx那么这个路径中的 ./ 对应的就是 makefile 文件所在的那个目录。 我们通过cmake和make就可以生成可执行程序了如图所示 总结
通过本教程我们学习了如何在CMake中定义变量、指定C标准以及指定输出路径。这些功能使得项目的配置和构建变得更加简便和灵活。变量提供了一种在不同地方共享信息的方式指定C标准确保了项目在不同平台上的一致性而指定输出路径则使得项目的构建结果更加有条理。希望这些知识能够帮助你更好地使用CMake管理和构建你的项目。