昨天在调试程序的时候,发现有些最新的函数Cfree并不支持,因为最新出来的C++11特性不满足。C++11标准较之前的版本在性能上有很大改变,具体请查阅百度或谷歌,谷歌现在进不去了,那就翻墙吧。
好了,首先我们还是如何让cfree支持C++11?
我们来回顾一下cfree5的特性:
(1) MinGW 2.95/3.x/4.x/5.0
(2) Cygwin
(3) Borland C++ Compiler
(4) Microsoft C++ Compiler
(5) Open Watcom C/C++
(6) Digital Mars C/C++
(7) Ch Interpreter
而且最新的c-free5.0版本已经可以支持c99标准。由于CFree5.0自带的GCC版本只有3.4.0,并不支持C++11,所以首先得去下载完整支持C++11的4.8.1版本——TDM-GCC-64(4.8.1)。具体请在百度或CSDN里下载。
第一步:下载并安装完成TDM-GCC-64,如下所示:
第二步:配置cfree;打开cfree,点击“构建”->"构建选项“:
(1)点击“编译”->“原始参数”,在原来的值之后添加“--version”;
(2)点击“命令”->“C++ compiler”,再点击左下角的“命令”,在原先的“命令行”里添加 -std=c++11,并在后面保留一个空格,与后面的原始数据隔开。
(3)点击“路径”,在“显示路径为”里有3个路径,分别是include files,library files,和executable files。先删除这3个路径里的默认值,再重新分别设置这3个路径的值,具体可以参照以下图进行设置:
其中,inlcude files包含的第4个路径是C:\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\4.9.2\install-tools\include;第5个路径是C:\TDM-GCC-64\lib\gcc\x86_64-w64-mingw32\4.9.2\include-fixed.
第三步:测试C++11特性
#include <iostream>
#include <thread>
using namespace std;
void my_thread()
{
puts("hello, world");
}
int main(int argc, char *argv[])
{
std::thread t(my_thread);
t.join();
system("pause");
return 0;
}
thread是C++11的线程类,头文件include <thread>。此程序能正常输出,说明配置C++11成功。
从此,你再也不用担心小小的cfree不能支持C++11了,可以放心的编程了吧。