1. 安裝 MinGW Distro (GNU GCC) 或 TDM-GCC 或 Clang
2. 安裝 CodeLite
3. 運行並配置 CodeLite

4. 漢化 CodeLite
下載中文語言包:https://github.com/eranif/codelite/tree/master/translations,中文語言包解壓后得到zh_CN文件夾,文件夾包含codelite.mo和codelite.po兩個文件,將文件夾zh_CN直接復制到CodeLite安裝目錄下locale文件夾內。
打開CodeLite軟件,從菜單【Settings -> Preferences】,選擇【Misc -> Encoding Locale】,修改 Locale to use 的值為 zh_CN:Chinese(Simplified) 。


5. 支持處理中文
從菜單【設置 -> 構建設置】進入構建設置頁面,選擇【編譯器 -> MinGW -> 開關】,修改 Debug 和 Source 的值,在其原值的后面加上 -fexec-charset=GBK -finput-charset=UTF-8,然后點【應用】。
注意一點,步驟4中【文件字體編碼】的設置和【-finput-charset】等號后的值應該是相同的,都設置為UTF-8或者GBK(WINDOWS-936),【文件字體編碼】指定源代碼文件(.c, .h)的編碼編碼方式,【-finput-charset】則用於告訴GCC編譯器源代碼文件的編碼方式。【-fexec-charset】用於告訴 GCC 編譯器處理字符串時采用的編號方式,因為是Windows系統所以選擇GBK,如果是Linux系統可以選擇UTF-8。

6. 支持C++11
在【設置 -> 構建設置 -> 編譯器 -> MinGW】的右側將【工具 -> C++編譯器】改成 gcc -std=c++14。
(英文版:Setting -> Build Setting -> Tools -> 將 C++ Compiler name 改成 gcc -std=c++14 )


7. 測試代碼
#include <iostream> #include <iomanip> // std::setw #include <vector> // 一維數組 輸出 楊輝三角形 int main() { using std::cout; using std::endl; using std::setw; using std::vector; constexpr size_t Line = 16; constexpr unsigned W = 5; size_t i, j; int n[Line+1]; cout << "\t\tPascal 三角形\n" << endl; cout << setw(W) << (n[1] = 1) << endl; for (i = 2; i != Line+1; ++i) { cout << setw(W) << (n[i] = 1); for (j = i-1; j != 1; --j) cout << setw(W) << (n[j] += n[j-1]); cout << setw(W) << n[1] << endl; } cout << endl << endl; using std::begin; using std::end; cout << setw(W) << (n[1] = 1) << endl; for (int *pl = begin(n)+2; pl != end(n); ++pl) { cout << setw(W) << (*pl = 1); for (int *pr = pl-1; pr != begin(n)+1; --pr) cout << setw(W) << (*pr += *(pr-1)); cout << setw(W) << n[1] << endl; } cout << endl << endl; int nn[Line] = {0}, t; bool beg = true; for (auto ll : nn) { beg = true; for (auto &mm : nn) if (beg && mm == 1) { cout << setw(W) << (t = mm = 1); beg = false; } else if (mm == 0) { cout << setw(W) << (mm = 1) << endl; break; } else { cout << setw(W) << (mm += t); t = mm-t; } } cout << endl << endl; vector<unsigned> v(Line, 0); cout << setw(W) << (v[0] = 1) << endl; for (i = 1; i != Line; ++i) { cout << setw(W) << (v[i] = 1); for (j = i-1; j != 0; --j) cout << setw(W) << (v[j] += v[j-1]); cout << setw(W) << v[0] << endl; } cout << endl << endl; for (auto &ll : v) { ll = 0; beg = true; for (auto &mm : v) if (beg && mm == 1) { cout << setw(W) << (t = mm = 1); beg = false; } else if (mm == 0) { cout << setw(W) << (mm = 1) << endl; break; } else { cout << setw(W) << (mm += t); t = mm-t; } } cout << endl << endl; cout << setw(W) << (v[0] = 1) << endl; for (vector<unsigned>::iterator it = v.begin()+1; it != v.end(); ++it) { cout << setw(W) << (*it = 1); for (vector<unsigned>::reverse_iterator rit(it); rit != v.rend()-1; ++rit) cout << setw(W) << (*rit += *(rit+1)); cout << setw(W) << *(v.cbegin()) << endl; } cout << endl << endl; return 0; }

參考:
https://my.oschina.net/myshow/blog/194971
http://www.itdadao.com/articles/c15a418358p0.html
