2013-03-11 294 views
1

我想在我的linux機器上使用GCC編譯FFTW(3.3)。我沒有使用多線程,一切都很好。現在我想切換到使用OpenMP和多線程。所以,我重新編譯FFTW3一個與線程的使用,按照以下說明:爲多線程,linux,gcc編譯FFTW3

http://www.fftw.org/doc/Installation-on-Unix.html#Installation-on-Unix

sudo ./configure CFLAGS=-enable-threads 
sudo make 
sudo make install 

如果我然後搜索fftw3_threads.h圖書館,我找不着

find/-name fftw3_* 
.... nothing 

這是如果我嘗試編譯並啓用openmp,則一樣。

sudo ./configure CFLAGS=-enable-openmp 
sudo make 
sudo make install 

編譯器不會沒有失敗。一切似乎都在起作用。但是,當我試圖包含任何一個庫時,我的代碼都不會編譯。

#include <fftw3_threads.h> 
#include <fftw3_omp.h> 

我得到一個「錯誤沒有這樣的文件或目錄」

所以,有幾個問題:

1)爲什麼我只需要一個 - 上市CFLAGS當符號「」?爲什麼FFTW手冊列出了所有以' - '開頭的標誌。 (我意識到這可能不是FFTW相關的問題)。

2.)我做錯了什麼?

3.)我從手冊中看到,「默認情況下,線程例程不會被編譯。」如果我從我的代碼離開了「包括」,它編譯這些方法不產生故障:

int dummy = fftw_init_threads(); 
fftw_plan_with_nthreads(omp_get_max_threads()); // setup for multithreading 

即使他們應該產生的故障,對不對?

回答

3

enable-openmp和enable-threads不是CFLAGS。 試試這個:

sudo ./configure --enable-openmp 
sudo make 
sudo make install 
+0

好吧,試過了。仍然沒有找到圖書館。 – tir38 2013-03-13 18:06:12

+0

with find/-name libfftw3_omp。*? – 2013-03-15 14:16:59

+0

啊是的。我不知道我怎麼沒有看到: 'sudo find/-name libfftw3_omp。* /home/jaso/Downloads/fftw-3.3.3/threads/.libs/libfftw3_omp.a /home/jaso/Downloads/fftw-3.3.3/threads/.libs/libfftw3_omp.lai /home/jaso/Downloads/fftw-3.3.3/threads/.libs/libfftw3_omp.la /home/jaso/Downloads/fftw- 3.3.3/threads/libfftw3_omp.la /usr/local/lib/libfftw3_omp.a /usr/local/lib/libfftw3_omp.la' 。 。 所以現在我只需要: '#include libfftw3_omp' – tir38 2013-03-15 16:32:11