云南网站备案系统东阳建设公司网站
- 作者: 五速梦信息网
- 时间: 2026年04月20日 06:51
当前位置: 首页 > news >正文
云南网站备案系统,东阳建设公司网站,手机网站关键词seo,WordPress推送到微信CMake#xff08;Cross-platform Make#xff09;是一个开源的跨平台构建工具#xff0c;用于自动生成用于不同操作系统和编译器的构建脚本。它可以简化项目的构建过程#xff0c;使得开发人员能够更方便地管理代码、依赖项和构建设置。 CMake 使用一个名为 CMakeLists.tx… CMakeCross-platform Make是一个开源的跨平台构建工具用于自动生成用于不同操作系统和编译器的构建脚本。它可以简化项目的构建过程使得开发人员能够更方便地管理代码、依赖项和构建设置。 CMake 使用一个名为 CMakeLists.txt 的配置文件来描述项目的构建过程。在 CMakeLists.txt 文件中可以指定项目的源代码文件、依赖项以及构建选项等信息。然后CMake 会根据这些信息生成对应平台的构建脚本如 Makefile 或 Visual Studio 项目文件从而完成项目的构建过程。 1.下载安装 Windows 在 CMake 官方网站 上下载 Windows 版本的安装程序。运行安装程序按照提示进行安装。 macOS 可以使用 Homebrew 进行安装命令为 brew install cmake。 Linux 在大多数 Linux 发行版的软件仓库中都可以找到 CMake可以使用系统自带的软件包管理器进行安装比如 Ubuntu/Debiansudo apt install cmakeFedorasudo dnf install cmakeCentOSsudo yum install cmake 2.CMake使用介绍
创建项目目录结构 假设你有以下项目目录结构 project/|- src/|- main.cpp|- helper.cpp|- include/|- helper.h|- CMakeLists.txt2. 编辑 CMakeLists.txt 文件 在项目根目录下创建一个 CMakeLists.txt 文件并添加以下内容 cmake_minimum_required(VERSION 3.10)project(MyProject)# 添加可执行文件 add_executable(my_executable src/main.cpp src/helper.cpp)# 添加头文件路径 target_include_directories(my_executable PUBLIC include)3. 生成构建系统 在项目根目录下创建一个 build 目录进入该目录并运行以下命令生成构建系统 cmake ..4. 构建项目 根据生成的构建系统进行构建操作比如使用 make 命令如果是在 Linux/macOS make
运行程序 构建成功后在 build 目录下会生成可执行文件你可以运行它 ./my_executable其他常见用法 指定编译选项 target_compile_options(my_executable PRIVATE -Wall -Wextra)添加库文件依赖 find_package(SomeLibrary REQUIRED) target_link_libraries(my_executable PRIVATE SomeLibrary::SomeLibrary)3.使用示例 基本的 CMakeLists.txt 配置文件 cmake命令会执行目录下的CMakeLists.txt配置文件里面的配置项 cmake_minimum_required (VERSION 2.8) #要求cmake最低的版本号 project (demo) # 定义当前工程名字 set(CMAKE_BUILD_TYPE Debug)#设置debug模式如果没有这一行将不能调试设断点 set(CMAKE_CXX_FLAGS \({CMAKE_CXX_FLAGS} -g) add_executable(main main.c) #进入子目录下执行 CMakeLists.txt文件 这里的lib和tests里面都有可编译的代码文件 add_subdirectory(lib) add_subdirectory(tests) 整个流程 生成一个main.cpp源文件输出hello world然后在同级目录创建一个CMakeLists.txt文件 1.test.cpp #include iostreamusing namespace std; int main() {cout Hello World! endl;return 0; } 2.CMakeLists.txt cmake_minimum_required (VERSION 2.8) #要求cmake最低的版本号 project (TestCMake) # 定义当前工程名字 set(CMAKE_BUILD_TYPE Debug)#设置debug模式如果没有这一行将不能调试设断点 add_executable(main test.cpp)3.执行cmake .命令 产生了CMake的一些中间文件和Makefile文件 Makefile里面实现了clean所以使用make clean可以清除生成的文件然后重新编译源码。 4.make编译生成最终可执行文件 源文件处理 如果需要编译的有多个源文件可以都添加到add_executable(main main.cpp test.cpp)列表当中 但是如果源文件太多一个个添加到add_executable的源文件列表中就太麻烦了此时可以用 aux_source_directory(dir var)来定义源文件列表使用如下 cmake_minimum_required (VERSION 2.8) project (demo) aux_source_directory(. SRC_LIST) # 定义变量存储当前目录下的所有源文件 add_executable(main \){SRC_LIST}) aux_source_directory()会把指定目录下的所有源文件都加进来可能会加入一些我们 不需要的文件此时我们可以使用set命令去新建变量来存放需要的源文件如下 cmake_minimum_required (VERSION 2.8) project (demo) set( SRC_LIST ./main.cpp ./test.cpp) add_executable(main ${SRC_LIST}) 正式工程构建 一个正式的源码工程应该有这几个目录 -bin 存放最终的可执行文件 -build 存放编译中间文件 -include 头文件 –test.h -src 源代码文件 –test.cpp main.cpp -CMakeLists.txt CMakeLists.txt如下 cmake_minimum_required (VERSION 2.8) project (math)
设置cmake的全局变量
set(EXECUTABLE_OUTPUT_PATH \({PROJECT_SOURCE_DIR}/bin) #添加头文件路径相当于makefile里面的-I include_directories(\){PROJECT_SOURCE_DIR}/include) aux_source_directory (src SRC_LIST) add_executable (main main.cpp \({SRC_LIST})然后在build目录里面执行cmake .. 命令这样所有的编译中间文件都会在build目录下最终的可执行 文件会在bin目录里面 然后使用make编译 最终生成的文件在bin目录下 静态库和动态库的编译控制 把上面的test源文件直接生成静态库或者动态库让外部程序进行链接使用代码结构如下 -bin 存放最终的可执行文件 -build 存放编译中间文件 -lib 存放编译生成的库文件 -include 头文件 --test.h -src 源代码文件 --test.cpp --CMakeLists.txt -test 测试代码 --main.cpp --CMakeLists.txt -CMakeLists.txt 最外层的CMakeLists.txt是总控编译: cmake_minimum_required (VERSION 2.8) project (cmaketest) add_subdirectory (test) add_subdirectory (src) src里面的源代码要生成静态库或动态库CMakeLists.txt内容如下 set (LIBRARY_OUTPUT_PATH \){PROJECT_SOURCE_DIR}/lib) include_directories (../include)
生成库动态库是SHARED静态库是STATIC
add_library (test SHARED test.cpp)
修改库的名字
#set_target_properties (test PROPERTIES OUTPUT_NAME libtest)test里面的CMakeLists.txt内容如下 set (EXECUTABLE_OUTPUT_PATH \({PROJECT_SOURCE_DIR}/bin) include_directories (../include) # 头文件搜索路径 link_directories (\){PROJECT_SOURCE_DIR}/lib) # 库文件搜索路径 add_executable (main main.cpp) # 指定生成的可执行文件 target_link_libraries (main test) # 执行可执行文件需要依赖的库 在build目录下执行cmake ..命令然后执行make如下 执行编译生成的可执行文件 查看生成的可执行文件检验其链接的库有哪些 CMake常用的预定义命令 PROJECT_NAME : 通过 project() 指定项目名称 PROJECT_SOURCE_DIR : 工程的根目录 PROJECT_BINARY_DIR : 执行 cmake 命令的目录 CMAKE_CURRENT_SOURCE_DIR : 当前 CMakeList.txt 文件所在的目录 CMAKE_CURRENT_BINARY_DIR : 编译目录可使用 add subdirectory 来修改 EXECUTABLE_OUTPUT_PATH : 二进制可执行文件输出位置 LIBRARY_OUTPUT_PATH : 库文件输出位置 BUILD_SHARED_LIBS : 默认的库编译方式 ( shared 或 static ) 默认为 static CMAKE_C_FLAGS : 设置 C 编译选项 CMAKE_CXX_FLAGS : 设置 C 编译选项 CMAKE_CXX_FLAGS_DEBUG : 设置编译类型 Debug 时的编译选项 CMAKE_CXX_FLAGS_RELEASE : 设置编译类型 Release 时的编译选项 CMAKE_GENERATOR : 编译器名称 CMAKE_COMMAND : CMake 可执行文件本身的全路径 CMAKE_BUILD_TYPE : 工程编译生成的版本 Debug / Release
- 上一篇: 云南网网站做公众号需要网站
- 下一篇: 云南网站建设公司wordpress红黑主题
相关文章
-
云南网网站做公众号需要网站
云南网网站做公众号需要网站
- 技术栈
- 2026年04月20日
-
云南省住房和城乡建设厅网站温州学校网站建设
云南省住房和城乡建设厅网站温州学校网站建设
- 技术栈
- 2026年04月20日
-
云南省住房和城乡建设厅网站首页wordpress后台设置发布时间
云南省住房和城乡建设厅网站首页wordpress后台设置发布时间
- 技术栈
- 2026年04月20日
-
云南网站建设公司wordpress红黑主题
云南网站建设公司wordpress红黑主题
- 技术栈
- 2026年04月20日
-
云南网站建设公司排行有了域名后怎么做网站
云南网站建设公司排行有了域名后怎么做网站
- 技术栈
- 2026年04月20日
-
云南网站建设哪家公司好厦门快速建网站
云南网站建设哪家公司好厦门快速建网站
- 技术栈
- 2026年04月20日
