2014-08-29 46 views
0

我使用的代碼::塊(版本13.12)與MinGW的32位(版本4.7.1)的Windows 7代碼::使用MinGW塊連接失敗

雖然試圖建立項目中,我收到以下錯誤編譯步驟之後:

Execution of 'mingw32-g++.exe -o cb_dlv.exe 
...huge list of *.o files... 
in 'D:\Workspace\cb_dlv' failed. 

有肯定與工具鏈的可執行文件沒有問題,因爲我的其他項目編譯和鏈接非常好,所有的工具都在他們的正確的地方。 mingw32-g++.exe是從cmd看到的,所以PATH變量沒有問題。清潔工作區似乎也沒有任何幫助。我已經嘗試移動項目文件,使路徑中沒有空格,但它也沒有幫助。以及重新打開/重新安裝/重新啓動。

有什麼建議嗎?

+0

不知道,但我認爲這是發生在你不在標準位置安裝CB。在菜單的某個地方你可以找到一個選項,它將搜索mingw的位置,然後我認爲它應該可以工作。 很久很久以前我用過CB,很抱歉如果我錯了。 – Melkon 2014-08-29 13:09:28

+0

CB安裝在默認目錄中,並且設置MinGW位置並從CB中看到。正如我上面提到的,tolchain可執行文件沒有問題。 – 2014-09-03 13:22:23

回答

1

由於我找到了解決方案,在這裏。

主要的問題是,在Windows 7上,命令行長度的限制大約是32K個字符。 MinGW編譯器和鏈接器在構建包含大量文件的項目時達到了該限制。這是MinGW使用的Windows API的一個基本限制。

解決辦法:縮短你喜歡的任何方式的命令行:合併一些文件於一體,單獨的項目分成幾個的,重命名長文件名的子目錄等

0

您是否將項目設置爲使用自定義生成文件?你的構建系統變量是什麼? 目標文件是否可用於D:\ Workspace \ cb_dlv? 這是您的編譯日誌的唯一輸出還是在它之前有其他輸出? 是您的項目建立目標明智嗎?

你應該看到構建系統日誌,它在編譯你的C/C++文件編譯成目標文件的最後鏈接階段發生,即東西像以前一樣:

mingw32-g++.exe -c D:\Workspace\cb_dlv\file.c -o D:\Workspace\cb_dlv\obj\Debug\file.o 

請充實這個問題多一些,我可能能夠幫助你。

+0

不,我沒有使用自定義的makefile,只是通常的Build/Rebuild Code :: Blocks選項。 – 2014-09-03 13:08:58

+0

生成並提供對象文件。我正在編譯以下選項(編譯日誌的片段):'mingw32-g ++。exe -w -nostdinc -nostdinC++ ...一些內部定義... ...頭文件目錄列表... -ID: -c「D:\ Workspace \ dlv \ Stack.cpp」-o「obj \ Stack.o」'。使用-nostdinc和-nostdinC++的原因是我試圖編譯一個有自己的標準頭實現的庫。 – 2014-09-03 13:17:52