---恢復內容開始---ios
前面已經安裝了windows下面的編譯器g++和mingw32-make,下面就make作個示例說明windows
1.文檔結構ide
|--src
|--comm
|--comm.cpp(內容以下:)測試
#include "../include/comm.h" string trim(string &strIn) { string tmp = " "; strIn.erase(strIn.find_last_not_of(tmp)+1,strIn.size()-strIn.find_last_not_of(tmp)); strIn.erase(0,strIn.find_first_not_of(tmp)); return strIn; }
|--Makefile(內容以下:) spa
libcomm.a:comm.o ar -r libcomm.a comm.o move libcomm.a ..\..\lib comm.o:comm.cpp g++ -m64 -c comm.cpp -o comm.o
|--include
|--comm.h(內容以下:)3d
#ifndef _COMM_H__ #define _COMM_H__ #include <iostream> using namespace std; string trim(string &strIn); #endif
|--module
|--test
|--Makefilecode
test.exe:test.cpp g++ -m64 -I../../include -L../../../lib test.cpp -lcomm -o test.exe move ./test.exe ../../../bin/
|--test.cpp(內容以下:)blog
#include <iostream> #include "..\..\include\comm.h" using namespace std; int main() { //cout<<"Hello World!"<<endl; string hello = " Hello World! "; cout<<trim(hello)<<endl; return 0; }
|--lib文檔
|--bin編譯器
2.執行順序
2.1先到comm(src\comm)下面編譯出來.o 和.a 文件,而後把.a移動到lib目錄下面
cd src
cd common
mingw32-make
結果以下所示:
your current path>mingw32-make
g++ -m64 -c comm.cpp -o comm.o
ar -r libcomm.a comm.o
ar: creating libcomm.a
move libcomm.a ..\..\lib
移動了 1 個文件。
yout current path>
2.2到test目錄(src\module\test)下面編譯出來可執行文件,而後把可執行文件移動到bin目錄下面:
your current path>mingw32-make
g++ -m64 -I../../include -L../../../lib test.cpp -lcomm -o test.exe
move ./test.exe ../../../bin/
移動了 1 個文件。
your current path>
2.3到bin下面去執行test.exe
your current path>test.exe
Hello World!
your current path>
2.4至此,hello world執行完畢。
3.我這裏執行用的是mingw64,make用的是mingw32-make。
使用mingw64下面的g++的時候,執行move命令沒有問題,須要加-m64參數(若是OS是64位,推薦使用這個,32位未做測試)
使用mingw32下面的g++的時候,生成的可執行文件也沒有問題,可是執行dos命令move就會報錯,能夠不加參數,默認是-m32.