2015-04-03 98 views
1

我在Windows機器上,我試圖讓Mingw(用gcc/g ++ 4.9.2)來識別我已經安裝了一個庫。Mingw FFTW3找不到庫/頭文件

圖書館是fftw3(快速傅立葉變換)庫的位置:

http://www.fftw.org/install/windows.html

我下載其中有三個重要的dll和其他一些頭文件的文件夾太

libfftw3-3.dll libfftw3l-3.dll libfftw3f-3.ll

但是我不知道該如何處理它們。

我有C++代碼從另一位作者,需要的庫,當我運行

waf configure waf build

我得到「-libfftw3」未發現的錯誤。

我已經把dll所在的目錄放到我的Windows路徑中,這看起來像這樣一個簡單的問題,但我不知道如何讓編譯器找到預編譯的DLL。 (我也試過只是讓gcc編譯器做一個默認搜索而沒有指定一個庫,但它說沒有找到「fftw.h」,這很奇怪,因爲我已經把該目錄放在了我的路徑中。

任何幫助將不勝感激;我沒有閱讀網站的說明,但對於Windows,它只告訴你使用Visual Studio的一些命令(但我沒有使用該編譯器),並且我瀏覽過其他網站的類似問題,但是我找不到解決方案

回答

0

您必須將頭文件和DLL放在GCC/G ++將要查找的地方;(它確實爲而不是搜索這些Windows路徑,而是搜索這些路徑,而是使用指定的路徑'-I path/to/headers'和'-L path/to/libs'選項在編譯器命令本身中)。

你有,基本上三個選擇在這裏:

  1. 顯式指定每個 單獨編譯器的適當-I和-L選項命令本身。
  2. 爲頭文件設置環境變量,例如CPATH,C_INCLUDE_PATH和CPLUS_INCLUDE_PATH,爲庫設置LIBRARY_PATH。
  3. 將頭文件和DLL安裝(複製)到標準目錄中,這些標準目錄已由編譯器自動搜索。

請參閱http://mingw.org/wiki/IncludePathHOWTOhttp://mingw.org/wiki/LibraryPathHOWTO瞭解更多詳情。

請注意,在DLL的情況下,安裝它們的目錄也必須出現在應用程序(.EXE)的默認DLL搜索路徑中。還要注意的是,如果這些是你自己編譯的DLL,它們可能已經用MinGW的GCC/G ++,以外的任何編譯器編譯過,它們會導出C++符號,但它們可能與您的應用程序不兼容,你與MinGW的G ++編譯。