2012-12-25 36 views
4

我使用Synaptic安裝了liblapack-dev及其依賴項,並且在我的代碼中包含了<lapack.h>我得到「lapack.h:沒有這樣的文件或目錄」,雖然我安裝了liblapack-dev

如果我嘗試編譯我的程序是這樣的...

mpicc program.c -llapack -o output 

...我收到以下錯誤:

program.c:4:20: fatal error: lapack.h: No such file or directory 
compilation terminated. 

我該如何解決這個問題?我已經花了數小時搜索解決方案,但沒有任何幫助。

我正在使用Linux Mint,但是我在最新版本的Ubuntu上嘗試過同樣的事情,但它仍然無法工作。當我嘗試從程序中「消除」MPI並使用gcc編譯時,也是如此。

+2

'locate' lapack.h' header,也許你需要設置編譯器的包含路徑。 –

+0

@Daniel Fischer:我到底該如何找到lapack.h頭文件?如果我在終端輸入「locate lapack.h」,我什麼都沒有。如果我輸入「locate liblapack-dev」,我會得到一些結果。我如何設置編譯器的包含路徑?我的意思是,我已經嘗試過這樣做(或者至少我以爲我做過),但沒有成功。 – iCanLearn

+0

大多數編譯器都有一個'-i'或類似的命令行選項,允許指定包含路徑。請查閱您的幫助文檔,適當的手冊頁或谷歌以獲取您的特定編譯器的命令選項。 – StarPilot

回答

3

回答,因爲它沒有在註釋適合:

manual says

Standard C language APIs for LAPACK 

collaboration LAPACK and INTEL Math Kernel Library Team 

    LAPACK C INTERFACE is now included in the LAPACK package (in the lapacke directory) 

    LAPACKE User Guide 

    Updated: April 20, 2012 

    header files: lapacke.h, lapacke_config.h, lapacke_mangling.h, lapacke_utils.h 

所以也許你需要

#include <lapacke.h> 
+0

我會贊成這個,因爲你想幫助我,但事實是:我實際上已經試過*第一*,這是我最終想要使用(拉包),但後來我意識到,甚至沒有lapack(沒有「e」)適用於我,並且認爲我應該先得到這個工作(因爲lapacke是lapack的一部分) – iCanLearn

+0

啊,但問題是沒有'lapack.h',就我而言可以確定,也許[用戶指南](http://www.netlib.org/lapack/lug/)更清晰 –

+0

有lapack.h,因爲我看過使用它的程序運行在其他計算機上,我已經看到了用戶指南,但我還沒有看完所有的東西,但是,我還沒有找到解決我的問題的方法,看起來很相關。 – iCanLearn

8

我經歷了Debian類似的問題。我注意到

dpkg -L liblapack-dev 

沒有返回單個頭文件。所以我用apt-cache做了一些搜索,發現看起來像是C頭文件。通過

sudo apt-get install liblapacke-dev 

安裝(注意額外的電子!)後,我能夠編譯一個最小的工作示例,發現here。修改include頂部閱讀

#include <lapacke.h> 

gcc -llapack lapack_example.c 

編譯成功運行我的系統上。希望這可以幫助某人。

+2

謝謝,這幫助我得到opencv編譯。 – Toby

相關問題