2013-04-30 97 views
0

我目前正在嘗試交叉編譯我寫的C++代碼,它在Linux上工作得非常好。使用mingw32和gmp交叉編譯

我安裝的mingw32,並彙編libgmp作爲使用類似的東西,一個窗口庫(.a)中:

./configure --prefix=/usr/i586-mingw32msvc/ --host=i586-mingw32msvc 

希望我這樣做是正確的

我加了兩個目錄到我的項目INCS和庫。在INCS我把.H報頭(gmpxx.h),並在庫我把libgmpxx.a和libgmp.a

我試圖使用此生成的文件進行編譯:

CPP=i586-mingw32msvc-g++ 
CPPSPECS= 
LDFLAGS=-I incs/ libs/ 
EXEC=ceyd++.exe 


all: $(EXEC) 

$(EXEC): base64.o polynome.o chiffre.o dechiffre.o ceyd.o 
    $(CPP) -o [email protected] $^ $(LDFLAGS) 

%.o: %.cpp 
    $(CPP) -o [email protected] -c $< $(CPPWARNINGS) $(CPPSPECS) 

clean: 
    rm -rf *.o 

mrproper: clean 
    rm -rf $(EXEC) 

予刪除該警告部作爲這裏沒有用。

當我運行make,它告訴我,沒有gmpxx.h如發現....

是否有人有辦法解決嗎?力圖在這一個...

回答

0

你的編譯指示應指向頭目錄「INCS」它是不是:

$(CPP) -o [email protected] -c $< $(CPPWARNINGS) $(CPPSPECS) 

創建一個變量,如下所示:

CCFLAGS=-Iincs/ 

和修改你的編譯指令:

$(CPP) -o [email protected] -c $< $(CPPWARNINGS) $(CPPSPECS) $(CCFLAGS) 

此外你的LDFLAGS變量看起來應該是這樣的:

LDFLAGS=-Llibs/ -l... 

其中...表示您在libs /中鏈接的共享庫的名稱。如果您只有一個靜態庫(.a),請將其添加到您的鏈接指令中。

+0

它的工作,謝謝! – naingenieu 2013-04-30 16:31:20