设定Dev-C++ 5.11和MinGW-w64, Windows上免费的C跟C++编译器

DevC++

Dev-C++ 4.9.9.2是一套免费并且开放原始码的C++ 程式设计软体,也是ㄚ琪在准备TQC+ 程式语言C认证时会用到的工具,更是公司开放下载安装的唯一免费的C跟C++编译器,我猜如果你在学C语言的话,想靠这个找工作,这个软体不会使用的话,面试的时候可能会不好看,但是从2006年作者都说没时间开发了,这个软体还要继续用吗?

还是先付一大笔费用给微软买VC++ 来装之后再来学习C语言?当然微软也是有免费Microsoft Visual Studio Express系列软体可以下载使用,但总是让我觉得受限制很多,之后就又让我受伤的找回Dev-C++使用。

Dev-C++ 4.9.9.2使用MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,使用这个编译器将无法在Windows的64位元模式上编译,这多么让人百般不愿意。

这个用于开发C/C++(C++11)的自由的整合式开发环境(IDE)实在该变了,现在很多人都推荐改由Orwell领衔开发的Dev-C++。2011年6月30日,Orwell释放出非官方版本的Dev-C++ 4.9.9.3版,加入了更新的GCC 4.5.2编译器(现在就是TDM-MinGW GCC,MinGW编译器安装套件,整合了32位元、64位元的TDM-GCC 4.9.2 c/c++/fortran编译器等)、Windows的软体开发套件(支援Win32以及D3D),而且重要的是一样有支援中文。

今天我们就来把Dev-C++ 5.11最新版本的设定及操作指南简介一下,让工友们可以享受这款免费C跟C++编译器的威力。

就先说说下载的方式:

  • 你可以下载含有TDM-GCC 4.9.2 (32位元跟64位元)安装程式可以在这里下载(47MB)。
  • 不包含编译器的安装程式可以在这里下载(2MB)。
  • 免安装的中文版含有TDM-GCC 4.9.2 (32位元跟64位元)可以在这里下载(34MB)。
  • 免安装的中文版不含有编译器的可以在这里下载(2MB)。
  • 最新版的测试编译器可以在这里下载。
  • 最后,要使用原始码来用也行,可以在这里找到(1MB),同样地,可以使用git来复制任何提交的版本,操作可以在这里找到。

ㄚ琪选用免安装的中文版含有TDM-GCC 4.9.2的来下载,因为公司不开放下载执行档,另外考量之前安装的Dev-C++ 4.9.9.2还要用,所以选这个来安装最好。

档名是Dev-Cpp 5.11 TDM-GCC x64 4.9.2 Portable.7z,觉得很怀疑,怎么只有x64的字眼,不是说可以支援32位元的吗?我的电脑现在是使用 Windows 7的32位元,所以今天没有要为各位测试64位元的,请注意。

解压缩后找到devcppPortable.exe这个档案来执行,devcpp.exe这个档案应该不是免安装的版本使用的,没有编译器可以选择,可是你会发现有这个画面:

2015-06-05_154214

确实没有这个资料夹,但是我在…\MinGW64\x86_64-w64-mingw32中有发现lib32这个资料夹,我就做了一个测试,如果你选Yes,那么在编译程式的时候,会少了-L”C:\Dev-Cpp_11\MinGW64\lib32″这个指令,回答No的话,就会多这个指令,如果把…\MinGW64\x86_64-w64-mingw32这里的lib32复制到…\MinGW64中,执行devcppPortable.exe就不会有这个画面出现,而指令也会多-L”C:\Dev-Cpp_11\MinGW64\lib32,ㄚ琪写了一只测试的程式看起来都不会有影响,所以你可以试试看别的程式编译会不会有问题。

执行之后的画面:

2015-06-05_154552

跟Dev-C++ 4.9.9.2的画面差异很少,几乎相似,除了除错、CVS的工具列在新版的没有,新版的除了AStyle、第二列的编辑指令有些不同,不过最重要的差异是新版的可以选择编译成32位元或是64位元的Debug、Release跟Profiling等六种版本。

#ifdef __BORLANDC__
#pragma hdrstop
#include <condefs.h>
#include <conio.h>
#else
#include <sys/types.h>
#endif

#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>

void main()
{
 int i;
 char dirname[BUFSIZ];
 DIR *dir;
 struct dirent *ent;

 printf("目录名称:>");
 scanf("%s",dirname);

 if((dir = opendir(dirname)) == NULL)
 {
 puts("无法开启目录");
 exit(1);
 }

 printf("%s 最前面3个档案:\n",dirname);
 for(i=0;i<3;i++)
 {
 if((ent = readdir(dir)) != NULL)
 printf("%s\n",ent->d_name);
 else
 break;
 }

 //回到目录的最前面
 rewinddir(dir);

 printf("%s 内的所有档案:\n",dirname);
 while((ent = readdir(dir)) != NULL)
 printf("%s\n",ent->d_name);

 closedir(dir);
}

这是ㄚ琪测试用的程式,就档案→开新档案→原始码→把上面的程式码复制贴上到编辑区域→执行→选编译或执行。如果还没有编译过,执行时会先出现这样的画面:

2015-06-05_162333

选Yes之后就会编译然后执行程式,这样就可以正确编译C语言的程式了,真是让人开心。

IMG_20150604_211200

去居酒屋庆祝一下吧,伙计来盘鸡肉吃吧~

 

 

 

Comments are closed.