
我們要結婚了,
Bring bring ring 要去那買?買多大?怎麼挑?啥咪是 6C ? 啥咪是8 心8 劍 (一人一刀呀!)?
GIA 又是那個品牌呀? 丫是多少錢? 價格落差會不會太多了呀!
一生的第一次,買個鑽還真是好複雜!

使用 Eclipse+CDT+MinGW 編寫 Linux 程式,如果要用到 thread 的話,預設沒有(我的版本沒有),必須額外載入套件「pthreads-w 32-2-8 -0-release.exe」。解壓出來後有三個套件目錄:Pre-built.2、pthreads.2、QueueUserAPCEx。
1、Download pthreads-w32-2-8-0-release.exe 。 http://www.mirrorservice.org/sites/sourceware.org/pub/pthreads-win32/
聽說:因為pthread 不是預設的 Linux 函式庫,連接時需要使用靜態庫 libthread.a 才可使用 pthread_create() 建立執行緒,等其它執行緒處理的方式;因此需要在載入相關的套件。
◎步驟一、在先前建置Eclipse+CDT+MinGW 環境所設的三個環境變數中,都加入 Pre-built.2、pthreads.2 相關的鏈接位置,這是我使用的方式;有看到人直接「把Pre-built.2中的libpthreadGC2.a改名為libpthread.a複製到c:\mingw\lib目錄,pthread.h複製到c:\mingw\include目錄即可解决,我當時試是不行,可能我有漏東西吧!」。
程式碼中可載入套件,但在eclipse中編譯時會出現錯誤:
undefined reference to 'pthread_create'
undefined reference to 'pthread_join'
◎步驟二:在編譯要多設參數,最快最方便的方式,在 Project 下的 Properties 下的 C/C++ Build 中的 Setting 下的 Tool Settings 中的 GCC C++ Complier 進行設定,如圖2,在 Command 中多加入 「- l pthread 」參數,
◎步驟三:同時也在另一個參數設定Expert Settings 中加入 「- l pthread」。在 MinGW C++ Linker 中也是進行相同的設定動作,如圖3 所示。之後即可編譯成功。
圖 2 GCC C++ Compiler
圖 3 MinGW C++ Linker
2、使用Pthread參考網址
C. http://blog.tianya.cn/blogger/post_show.asp?BlogID=797111&PostID=23966420&idWriter=0&Key=0
D. http://www.360doc.com/content/10/0407/15/1066294_21950629.shtml
E. http://tw.myblog.yahoo.com/yh-chiang/article?mid=707&prev=719&next=701
在不熟Linux作業系統的情況下寫程式(C++ or C),用 Windows作業系統來模擬在 Linux 下寫程式的好法子為 Eclipse+CDT(gcc, g++)+MinGW,主要考量此方式有提供模擬Linux compiler,makefile的功能;同時編譯出的程式,可以直接佈署在Linux環境上。
1、Download JDK or JRE,因為 Eclipse需要。http://java.sun.com/javase/downloads/index.jsp
2、Download Eclipse,因為這是開發環境。http://www.eclipse.org/downloads/
3、Download CDT(C/C++ Development Tooling),因為,你要寫C/C++ 。http://www.eclipse.org/cdt/
這點我覺的裝完Eclipse 後,用線上更新的方式去下載相關套件比較方便。否則就是將載回來的檔案,將解壓縮後的features、plugins整個資料夾複製到Eclipse安裝資料裡,重新開啟Eclipse即可。
4、Download MinGW,它可在Windows上使用的GNU C、C++編譯器。http://sourceforge.net/downloads/mingw/
5、設定環境變數:先在Command Line模式下測試編譯與執行。先將C:\MinGW\bin底下的mingw32-make.exe更名為make.exe,因為待會在Eclipse使用時它預設會抓系統裡make這個檔名而不是mingw32-make。(註:如果不更名或是還有其他make程式時,也可以在稍後的Eclipse設定中,在make targets view的地方,新增一個task時,build command 取消use default , 使用 mingw32-make,或在project properties->make project ->將make 改為 mingw32-make )。
在環境變數裡加入下列設定:
PATH : C:\MinGW\bin; (如果系統已經有裝其它C/C++編譯器,請把C:\MinGW\bin加在最前面。)
LIBRARY_PATH :C:\MinGW\lib
C_INCLUDE_PATH :C:\MinGW\include
CPLUS_INCLUDE_PATH :C:\MinGW\include\c++\3.2.3;C:\MinGW\include\c++\3.2.3\mingw32;
C:\MinGW\include\c++\3.2.3\backward;C:\MinGW\include
6、測試
先使用文字編輯器編寫測試用的原始檔,檔名:main.cpp。
1 | #include <iostream> using namespace std;
int main(void) { cout << "Can You Feel My World?" ; return 0; } |
在Command Line下編譯指令:
1 | C:\g++ main.cpp -O3 -o hello |
(O3的O是英文大寫"歐")
編譯成功後:便會產生hello.exe的執行檔。
執行畫面如下:
1 | C:\Documents and Settings\Sungo>cd\
C:\>g++ main.cpp -O3 -o hello
C:\>hello Can You Feel My World? C:\> |
註:-O3 旗標表示採最高級編譯最佳化,編譯速度最慢,但產生的執行檔
檔案會最小,執行速度會最快;-o 旗標表示將編譯完的*.exe重新更名。
◎步驟一.開啟Eclipse後,首先先開啟C/C++專用視景。
Windows->Open Perspective->C/C++ Development
◎步驟二.建立一個C++用的專案。
File-New->Project->C++->Standard Make C++ Project
(接下來的步驟跟建立一般的Java專案一樣,皆採預設即可)
◎步驟三.把我們剛剛寫的main.cpp import進來,加到專案裡。
File->Import->File System->瀏覽C:\main.cpp
◎步驟四.建立一個makefile。
File->New->File,檔案名稱填:makefile。(不需打副檔名)
makefile內容如下:
1 | all: g++ main.cpp -g -o run |
注意:makefile縮排要以Tab鍵作縮排,不能以空格4作縮排,
否則Build會有問題。
◎步驟五.設定Make Targets。
Windows-Show View->Make Targets;在Make Targets視窗裡按滑鼠右鍵,Add Build Target,name打:編譯。Build Target打:all。
◎步驟六.編譯。
在剛剛建立的Make Targets "編譯" 上點滑鼠2下,即會開始編譯,此時我們可以發現hello.exe已經產生在我們專案下了。可在底下C-Build視窗看到以下輸出結果:
1 | make -k all g++ main.cpp -g -o run |
◎步驟七. *.exe執行前設定。因為在Windows下Run,所以要先作個設定,請開啟Project->Properties->C/C++ Make Project->Binary Parser頁面。Binary Parser下拉式選單,將ELF Parser改成PE Windows Parser。
◎步驟八.執行。
Run->Run as->C Local Application。在底下Consloe視窗看到hello.exe的執行結果。註:當原始檔有修改,要重新編譯時,只要滑鼠雙擊我們在步驟五
所建立的Make Targets "編譯",即可Rebuilding。
7、環境建置參考網址:
A. http://www.javaworld.com.tw/jute/post/view?bid=10&id=53262&sty=1&tpg=1&age=0
B. http://nknush.kh.edu.tw/~johnsirhp/Eclipse%2BCDT%2BMinGW.htm