编译lwan
的时候顺道看了下MinGW,发现64位版本也更新到了4.9
,感觉自己很久没更新过Windows下的C++环境了,也想体验一下C++ 11,顺手升级了一下。
自己一直使用QtCreator
作为C++开发环境,这个IDE个人很喜欢,自动补全功能相当方便,之前在开发Qt程序的时候这几乎是最好的选择,现在也开始出现了收费版本,但是仍然有社区版可用。目前CLion还没有放出正式版本,VS感觉又太重,QtCreator感觉还是一个很不错的选择。
QtCreator的是支持CMake
的,正好自己想要学习CMake,于是打算选用CMake作为构建部分的工具。
以下是简要的配置步骤:
1.安装MinGW64
MinGW现在使用安装器的形式进行安装,下载完成一个很小的安装器后进行安装,期间可能是比较漫长的下载过程。不再多说。
2.安装CMake
一样是常规的安装步骤。
3.QtCreator配置
首先是配置编译器路径信息:
在工具
->选项
中进行配置:
之后配置GDB路径信息:
还需要配置上CMake路径信息:
上述步骤完成之后根据之前起好的别名(即上图中的Name字段),选择组成构建套件:
4.项目级配置
首先自然是常规的新建项目了:
在项目类型这里,需要选择使用CMake构建的纯C++项目:
建立完成之后选择好保存的位置
之后开始配置Debug构建目录
之后生成CMake相关文件,这里需要指定构建版本为Debug版本,即在参数中指明-DCMAKE_BUILD_TYPE=Debug
:
之后项目会生成一个main.cpp
和一个CMakeLists.txt
文件:
在CMakeLists.txt
文件中增加如下配置,告知检查编译器是否支持C++ 11。
1 2 3 4 5 6 7 8 9 10 11 |
include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) if(COMPILER_SUPPORTS_CXX11) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") elseif(COMPILER_SUPPORTS_CXX0X) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") else() message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") endif() |
之后可以对项目这一构建模式由默认的all重命名为Debug,重新对项目执行CMake操作。
完成上述操作之后,Debug对象的构建配置工作基本完成,可以通过如下代码检验是否能够支持C++ 11的语法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> v = {5, 2, 1, 4, 3}; sort(v.begin(), v.end()); for(int i: v) cout << i << " "; cout << endl; return 0; } |
之后可以尝试构建Debug对象(点击左下角锤子图标):
尝试运行:
发现能够成功运行,那么至少配置Debug对象这一步就没有问题了。
5.调试
既然生成了Debug对象,那么调试功能自然不能少,尝试打一个断点:
可以看出,在断点处查看局部变量等核心调试功能已经能够正常工作,单步、步入等功能也都可以正常工作。
6.发布程序
构建了Debug对象,那么作为生成产物的Release对象自然也不能少。
可以在添加一个构建模式:
Debug对象与Release对象会通过CMake生成不同的配置,需要将二者放到不同的目录中:
CMake参数上的区别在于需要指明-DCMAKE_BUILD_TYPE=Release
:
之后的构建运行同Debug。
(CentOS下升级GCC参考了这里
)。
以上。