設定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

確實沒有這個資料夾,但是我在…MinGW64x86_64-w64-mingw32中有發現lib32這個資料夾,我就做了一個測試,如果你選Yes,那麼在編譯程式的時候,會少了-L”C:Dev-Cpp_11MinGW64lib32″這個指令,回答No的話,就會多這個指令,如果把…MinGW64x86_64-w64-mingw32這裡的lib32複製到…MinGW64中,執行devcppPortable.exe就不會有這個畫面出現,而指令也會多-L”C:Dev-Cpp_11MinGW64lib32,ㄚ琪寫了一隻測試的程式看起來都不會有影響,所以你可以試試看別的程式編譯會不會有問題。

執行之後的畫面:

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("%sn",ent->d_name);
 else
 break;
 }
 
 //回到目錄的最前面
 rewinddir(dir);
 
 printf("%s 內的所有檔案:n",dirname);
 while((ent = readdir(dir)) != NULL)
 printf("%sn",ent->d_name);
 
 closedir(dir); 
}

這是ㄚ琪測試用的程式,就檔案→開新檔案→原始碼→把上面的程式碼複製貼上到編輯區域→執行→選編譯或執行。如果還沒有編譯過,執行時會先出現這樣的畫面:

2015-06-05_162333

選Yes之後就會編譯然後執行程式,這樣就可以正確編譯C語言的程式了,真是讓人開心。

IMG_20150604_211200

去居酒屋慶祝一下吧,伙計來盤雞肉吃吧~

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *