使用CMake编译CC++程序

使用CMake编译CC++程序,第1张

CMake Tutorial

CMake Reference

定义程序编译规则

生成可执行文件的最简单版本的 CMakeLists.txt

以上CMakeLists.txt定义的编译规则是将源文件tutorial.c编译成名为 Tutorial 的可执行文件。

一般用法是,新建一个文件夹,一般命名为 build ,在终端进入该蠢族文件夹,然后调用 cmake ../ , cmake 会在找到上级目录找到 CMakeLists.txt ,生成 makefile 和一些其它文件。

在 makefile 所在目录,调用 make 命令,会根据 makefile 对闹档弊程序液族进行编译生成。

CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile或者vcproj项目。

通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令搜肆构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。

如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。

总之,CMake是一个非常强大的编译自动配置工具,支持各种平台,KDE也是用它编译的,感兴趣的可以试用一下。

准备活动:

(1)安装cmake。

下载地址:

根据自己的需要下载野毁相应的包即可,Windows下可以下载zip压缩的绿色版本,还可以下载源代码。

Windows下CMake的使用

(2)运行cmake的方法。(GUI、命令行)

CMake使用步骤:

运行GUI的cmake界面:

cmake-2.8.1-win32-x86\bin\cmake-gui.exe

Windows下CMake的使用

执行Configure:

运行之后,生成了如下文件:

Windows下CMake的使用

生成Makefile:

执行Generate之后生成如下文件:

Windows下CMake的使用

运行make进行编译:

Windows下CMake的使用

编译完成后,在build目录生成Tutorial.exe,运行Tutorial.exe 25就可以看到运行结果:

Windows下CMake的使用

运行make install安装程序:

Windows下CMake的使用

运行make test进行测试:

Windows下CMake的使用

通过cmake tutorial学习CMake配置方法

可以在源代码的Tests/Turorial目录中找到这个手册对应的代码。

Windows下CMake的使用

1、Step1。

(如果不知道如何使用cmake,以及如何使用编译产生的Turorial.exe,可先看下前面“CMake使用步骤”的说明,它以Step4为例详细介绍了使用过程,Step1的配置可能不够完全,比如无法运行make install,无法运行make test,但可以参考。)

简单的程序编译。

(1)运行GUI的cmake,指定要编译的源代码路径和二进制文件路径(会自动创建)。

Windows下CMake的使用

(2)点击Configure,配置成功后,再点击Generate。

配置需世脊轿要选择合适的编译器,虽然我安装了VC2008,但没有配置成功;选择Unix Makefiles,配置成功,它自动找到了DevC++下的gcc.exe等编译器。

Windows下CMake的使用

(3)在build3目录执行make,就能够编译生成Turorial.exe了。

D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>make

Linking CXX executable Tutorial.exe

[100%] Built target Tutorial

可以运行一下Turorial.exe:

D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe

Tutorial.exe Version 1.0

Usage: Tutorial.exe number

D:\Projects\Lab\testngpp\cmake-2.8.1\Tests\Tutorial\Step1\build3>Tutorial.exe 4

The square root of 4 is 2

2、Step2

把子目录编译为库,并且链接到最终的可执行文件。

include_directories ("${PROJECT_SOURCE_DIR}/MathFunctions")

add_subdirectory (MathFunctions) # 使得子目录MathFunctions也能被编译

# add the executable

add_executable (Tutorial tutorial.cxx)

target_link_libraries (Tutorial MathFunctions)

产生makefile:

在GUI上点击Configure,之后Generate还是灰色,再次点击Configure,Generate就可以点击了。

编译:


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12282379.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存