2012-11-08 68 views
4

這是我在這裏的第一篇文章,所以請原諒我,如果我做錯了什麼。用mingw在windows上編譯libnoise

我一直在爲此奮鬥了幾天,終於決定讓步並尋求幫助。簡單地說,我想用mingw在windows上編譯libnoise(1.0.0)。但是,似乎缺乏在線信息。

我已經從網站下載了源文件,並按照INSTALL文本文件中的指示說明我應該運行命令「CXXFLAGS =' - O3 -fomit-frame-pointer'make」(我從mingW外殼)。

該操作的輸出可以在link找到(我已經鏈接,而不是發佈輸出,因爲它的長度)。如果我省略了CXXFLAGS或fomit-frame-pointer標誌,或者如果我使用mingw32-make或make all命令,輸出不會有太大的變化。

這似乎是在抱怨缺少的文件,如

的Makefile:56:../src/latlon.d:沒有這樣的文件或目錄

雖然我可以證實他們的存在在目錄中說明。它也抱怨別的

C:/ MinGW的/ bin中/../ lib中/ GCC/mingw32的/ 4.7.0 /../../../ libmingw32.a(main.o),此:main.c :(.txt t.startup + 0xa7):undefined參考[email protected]' collect2.exe: error: ld returned 1 exit status make[1]: *** [libnoise.so.0.3] Error 1 make[1]: Leaving directory /c/users/gibbons/desktop/libnoisesrc-1.0.0/noise/src'make:* [src]錯誤2

我不知道如何解決這些問題。一個谷歌搜索並沒有真正變成很多,然後一個博客post。這也沒有真正的幫助,因爲我不確定它是什麼意思,「重命名庫名給它一個合適的DLL擴展名,一個替換 - 所有的都會。」。

任何幫助或建議,將不勝感激,我真的很卡! : -/

乾杯

額外的信息:我運行Windows 7,64位和(認爲)我在MinGW的4.7.0。

+1

我不知道你是否曾經解決過這個問題,但是如果你還沒有解決這個問題,用戶Lukas會將一個CMake設置放在一起,這使得構建libnoise變得非常簡單。你可以在他的答案中找到它鏈接到這個問題:http://stackoverflow.com/questions/15272971/netbeans-c-using-mingw-and-the-libnoise-library – Rabbit

回答

3
  1. 不用擔心No such file or directory。這很正常,請參閱src/Makefile的底部以獲得解釋。
  2. 永遠不要使用目標clean。我無法從中恢復。
  3. 刪除所有路線以建立.so檔案。這些是linux文件,不能由mingw構建。打開所有的Makefile S和註釋含有.so線,除了行:

    libnoise: libnoise.so libnoise.a libnoise.la
    all: libnoise.a libnoise.la libnoise.so.0.3

    在上述線僅除去含有.so詞語的這將阻止構建.so目標。

找到靜態庫src/.libs/libnoise.a

構建DLL會比較困難,因爲作者使用Visual Studio進行構建。沒有生成文件目標來構建該dll。您需要準備幾行文件來處理win32目錄中的文件,並生成該文件夾。

+0

你,先生,是一個傳奇。非常非常感謝你!我還沒有測試過,但它似乎有效! :) – Gib

+0

我證實它的工作。再次感謝:) – Gib

+0

'win32'目錄中的文件主要是裝飾性的。他們添加一些額外的信息給DLL。由於對我來說Makefile看起來相當破碎,我寫了一個CMake腳本並調整了目錄結構,但代碼本身仍然相同。現在很容易建立一個靜態或共享庫:[GitHub Project](https://github.com/eXpl0it3r/libnoise) – Lukas

相關問題