2011-07-07 42 views
0

我想在我的Windows系統上構建一個交叉編譯器(x86-> 64),其目標是定位到Windows 64,但是我的軟件目前依賴於開源的庫,這些庫也有開源的依賴關係,沒有預編譯的二進制文件可供我編譯。這意味着如果我想要我編譯它們的64位版本。爲什麼我的(x86-> 64)windows交叉編譯器編譯失敗?

我已經安裝了MSYS和mingw,我也正在將mingw-w64添加到組合中,以便我最終可以編譯64位格式的庫以供我的軟件使用。我儘可能按照步驟using these instructions以及該頁面上列出的順序執行步驟,目前我正在執行「構建GCC核心交叉編譯器(s)」的步驟,但是當我嘗試編譯與線:

$ ../gcc-4.6.1/configure --target = x86_64的-W64-的mingw32 --enable-目標=所有& &使-j 6全GCC & &化妝 - j 6 install-gcc

我得到了output pasted here。我應該注意到,我當然會剪掉先前執行的命令,最後一個命令是在顯示所有錯誤之前列出的最後一個命令。另外,我不知道是否由於'-j 6'參數導致的所有錯誤的原因,但是至少在之前的所有錯誤都看起來成功。

什麼問題,我該如何解決?

哦,預計有一個潛在的建議;不,我不能切換到cygwin。

編輯:單獨執行它們,here's the output of the configure commandthe output produced by make all-gcc (no -j argument)config.log後好了。請注意,我沒有事先運行make clean,這可能解釋了不同的結局,我沒有爲了編寫此更新而花費時間,但是我想我只是創建一個不同的編譯文件夾並重新執行它乾淨地希望看到與以前一樣的錯誤,同時等待響應。

編輯2:本make all-gcc失敗再次如預期,這一次the output應該幫助多一點希望。

非常感謝您的幫助。

+0

得到錯誤之後,再次運行make,而不使用-j選項來查看確切的命令生成它。看看這些錯誤,似乎彙編程序正在對它無法識別的指令進行檢測,所以您的工具鏈可能不會準備好發出x64代碼。 – eriktous

+0

我按照你的建議開始編譯過程。你說什麼是有道理的..但我覺得它很奇怪,因爲在我看來,這一步的整個目的是編譯能夠做到這一點的編譯器.. – Geoff

回答

0

您的config.log顯示構建過程將使用x86_64-w64-mingw32/bin中的二進制文件來處理諸如ar之類的內容......這些僅供內部編譯器使用,它們應該全部在您的/ mingw/bin目錄。我強烈建議在mingw-w64-public郵件列表上尋求幫助。

+0

我不知道該怎麼做你說的第一件事,但我剛剛註冊到郵件列表併發送了一封電子郵件。感謝您的建議! – Geoff