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可以构建为共享库或静态库。不支持两者都构建。默认情况下,只会构建共享库。如