2011-08-31 56 views
8

我有一個標準的C庫,在使用gcc的Mac OS X上編譯得很好。MinGW「程序入口點libiconv無法找到...」

我已經研究可用於Windows的C編譯器,並選擇MinGW的一對夫婦的原因:

  • MS的工具不支持C99
  • 的Cygwin等。人。增加與POSIX模擬複雜的多級,我不想
  • 無法獲得LCC-win32的工作

但是,當我嘗試建立我的圖書館,我得到這個:

enter image description here

這東西都看起來很陳舊,而且有幾乎沒有像樣的在線資源,我可以找到。

任何幫助將不勝感激。

謝謝。

編輯:

不要緊,我嘗試建立。即使我只用一個添加兩個數字的函數創建一個文件。它崩潰。似乎沒有任何與源代碼或傳遞給gcc的選項有關。我認爲這是MinGW設置的問題,而不是我的項目。

+0

當您構建DLL時會產生此錯誤? –

+0

這並不重要,我試圖建立。即使我只用一個添加兩個數字的函數創建一個文件。它崩潰。似乎沒有任何與源代碼或傳遞給gcc的選項有關。 – Steve

+1

顯然你的mingw安裝是borked。你是如何安裝的? –

回答

26

確保您的路徑中包含libiconv-2.dll的任何其他目錄之前都有C:\ MinGW \ bin。顯然,某些MinGW發行版中的as.exe依賴於該DLL,並且在某處(例如GnuWin32工具)在某個路徑中具有較舊版本的路徑會導致as.exe接收不具有所需入口點的舊版本。

參見:http://sourceforge.net/tracker/index.php?func=detail&aid=3375870&group_id=200665&atid=974439

注 - 你應該能夠用較新的一個在\MinGW\bin替換舊libiconv-2.dll - 的DLL 的命名應該意味着它是落後與老一個兼容的(即不依賴於較新出口的舊軟件應該繼續工作)。但是,如果您決定嘗試用您的MinGW安裝中的DLL替換衝突的DLL,我還沒有測試過,所以一定要進行備份。

+2

有趣。我已經安裝了GnuWin32。讓我試試這個並回到你身邊。我的'PATH'中也有'C:\ MinGW \ bin',但是* GnuWin32之後*我相信...所以如果與GnuWin32有衝突,我相信系統會先找到GnuWin32版本* *。這絕對是對這裏出現問題的合理解釋。 – Steve

+0

賓果。我希望我能給你更多的選票。這正是問題(與GnuWin32衝突)。 – Steve

+0

乾杯章。在調查發生了什麼的時候,我發現如果我在當前目錄_was_ \ mingw \ bin中調用gcc,我可以進行編譯。在那種情況下,as.exe很高興。但任何其他pwd,它不是。謝謝你。我在構建時正在尋找某種不匹配的dll問題,而不僅僅是as.exe沒有正確啓動。乾杯。 – RichColours

2

除了確保C:\ MinGW \ bin在您的PATH之前,您還應該重新啓動您的計算機(或可能註銷/登錄),以確保您的PATH實際上已更新。