当前位置: 首页 > 编程笔记 >

C++ 使用CMake生成构建环境

融渊
2023-03-14
本文向大家介绍C++ 使用CMake生成构建环境,包括了C++ 使用CMake生成构建环境的使用技巧和注意事项,需要的朋友参考一下

示例

CMake可以从单个项目定义为几乎所有编译器或IDE生成构建环境。以下示例将演示如何将CMake文件添加到跨平台的“ Hello World” C ++代码。

CMake文件始终被命名为“ CMakeLists.txt”,并且应该已经存在于每个项目的根目录中(可能还存在于子目录中)。基本CMakeLists.txt文件如下所示:

cmake_minimum_required(VERSION 2.4)

project(HelloWorld)

add_executable(HelloWorld main.cpp)

在Coliru上实时观看。

该文件告诉CMake项目名称,期望的文件版本以及生成名为“ HelloWorld”的可执行文件所需的说明main.cpp。

通过命令行为已安装的编译器/ IDE生成构建环境:

> cmake .

使用以下方法构建应用程序

> cmake --build .

这将为系统生成默认的构建环境,具体取决于操作系统和已安装的工具。使用“无源”构建,保持源代码不受任何构建工件的影响:

> mkdir build
> cd build
> cmake ..
> cmake --build .

CMake还可以从前面的示例中提取平台外壳的基本命令:

> cmake -E make_directory build
> cmake -E chdir build cmake .. 
> cmake --build build

CMake包括用于许多常用构建工具和IDE的生成器。为Visual Studio生成makefile nmake:

> cmake -G "NMake Makefiles" ..
> nmake
           

 类似资料:
  • 我的Ubuntu电脑同时安装了qt4和qt5,因为它与一些lib兼容。目前,我想用qt4重建opencv(用于highgui)。但cmake始终使用qt5(默认版本)。我编辑了CMakeLists。txt文件 重建opencv后,我使用ldd libopencv_highgui检查依赖项。所以 libqt5核心。所以5 = Highgui仍然链接到Qt5。有人能帮我吗?谢谢

  • 生产环境打包要做两件事: 压缩应用代码; 使用 Vue.js 指南中描述的部署方式去除 Vue.js 中的警告。 下面是配置示例: // webpack.config.js module.exports = { // ... other options plugins: [ // short-circuits all Vue.js warning code new webp

  • 在构建我们的生产bundle时有两件事情要做: 1.压缩我们的应用代码; 2.使用Vue.js指南中描述的设置删除Vue.js源代码中的所有警告。 这里有一个示例的配置: // webpack.config.js module.exports = { // ... 其余配置 plugins: [ // 忽略所有Vue.js警告代码 new webpack.DefinePlu

  • 我获得了一个使用Xerces-C++的旧C++项目的源代码,我正试图用CMAKE在CLion上构建该项目。OSx版本:Catalina。 我首先准备了旧项目上没有的cmakelists.txt。 我得到了这个构建异常:

  • 为什么使用 qmake 生成的比 cmake 生成的 dll 要大很多? 在Qt中,我们使用 qmake 和 cmake 分别创建一个项目,然后寻找Release运行程序,再使用Qt的打包工具,两者生成的dll文件大小相差很大,这是为什么?

  • 我正在尝试在我的Windows平台上构建<code>PoDoFo库</code>(用作API)。这是使用完成的。文件说明如下。不幸的是,我是CMake的新手,我无法从中获得很多东西。 在Windows上构建PoDoFo Windows 需要 2.6.x。您可以从 cmake.org 下载它。 在Windows上,PoDoFo可以构建为共享库或静态库。不支持两者都构建。默认情况下,只会构建共享库。如