永发信息网

cmake 在Windows 命令行怎么指定编译器

答案:1  悬赏:30  手机版
解决时间 2021-03-23 18:36
cmake 在Windows 命令行怎么指定编译器
最佳答案
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。
下载地址:http://www.cmake.org/cmake/resources/software.html
根据自己的需要下载相应的包即可,Windows下可以下载zip压缩的绿色版本,还可以下载源代码。
Windows下CMake的使用
(2)运行cmake的方法。(GUI、命令行)
http://www.cmake.org/cmake/help/runningcmake.html

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配置方法
http://www.cmake.org/cmake/help/cmake_tutorial.html
可以在源代码的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就可以点击了。
编译:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
宣城市中心医院我想知道这个在什么地方
英国衣服牌子dc全称
pb3o4 中pb 几价
赞美孔子的诗词
补钾时液体的安全配制为〔〕 A、10%氯化钾15
小明买了一套《安徒生童话集》,付了74.8元,
中国航天事业都取得了哪些成就?
高达72魔神第一是谁
G578和G1484火车为什么票价不一样
小吃摊在哪里啊,我有事要去这个地方
给幼儿园教师祝福语,给幼儿园老师的祝福语怎
A House Is Not A Home 歌词
分配器有几种?
求问影驰GTX550Ti 虎将1GD5 独立显卡 这款显
“In no conditionyou are a Chinese.” Dad
推荐资讯
出行温馨提示语录,保持安静楼道温馨提示语句
在①海水②镁粉③高锰酸钾④冰水⑤空气⑥氧化
怀孕几个月要补钙,一般怀孕几个月开始补钙?
lonely christmas MV 中陈奕迅怎么了,女主角
单选题下列现象中与分子运动无关的是A.木材制
和女朋友一起出去玩,想带点零食吃,有哪一款零
如何辨别政治骗子?
女:你有几套房?男:九套。女:你会纹身吗?
lol英雄常说的话(口头禅)越多越好,谢谢。
天津市区哪有比较大的山地车或者骑行装备店?
谁知道绿态车U是干嘛用的?
简答题 经院哲学对中世纪大学的影响
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?