2013-04-23 87 views
0

免責聲明:這不是我的領域,我不知道的行話。提供圖書館的路徑

我想編譯和運行計算服務器上的一些代碼。機器上安裝了intel編譯器。當我嘗試編譯代碼時使用

ifort src.f -o mem 

一切正常。如果我嘗試優化的事情:

ifort -fast src.f. -o mem 

我先得到消息:

ipo: remark #11001: performing single-file optimizations 
ipo: remark #11006: generating object file /tmp/ipo_ifortYepD4m.o 

這似乎合乎邏輯的。當我運行了文件,我得到一個錯誤:

./mem: error while loading shared libraries: libgfortran.so.1: cannot open shared object file: No such file or directory 

我搜索libgfortran

[email protected]:~/prog/mn270.161> locate libgfortran 
/home/MATLAB/R2011b/sys/os/glnxa64/libgfortran.so.3 
/home/MATLAB/R2011b/sys/os/glnxa64/libgfortran.so.3.0.0 
/opt/matlab/r2012b/sys/os/glnxa64/libgfortran.so.3 
/opt/matlab/r2012b/sys/os/glnxa64/libgfortran.so.3.0.0 
/usr/lib64/gcc/x86_64-suse-linux/4.3/libgfortran.a 
/usr/lib64/gcc/x86_64-suse-linux/4.3/libgfortran.so 
/usr/lib64/gcc/x86_64-suse-linux/4.3/libgfortranbegin.a 
/usr/lib64/libgfortran.so.3 
/usr/lib64/libgfortran.so.3.0.0 

有沒有辦法告訴ifort可用libgfort庫?

+1

這真的很奇怪。 Ifort不應該依賴於libgfortran而不是它的舊版本。你確定你確實在這裏複製了彙編嗎?爲什麼你在'src.f.'中有另一個點? – 2013-04-23 14:52:00

+0

在調試運行時鏈接問題時,通常很有啓發意義,在其輸出中使用ldd工具和peer。 – 2013-04-23 18:14:14

+0

@VladimirF額外的點是我發佈問題時的一種類型。當我嘗試運行輸出(bin?)文件(這是一個隊列系統)時,輸出由計算服務器打印,而不是由編譯代碼的機器打印。 – Yotam 2013-04-23 19:52:04

回答

1

我同意弗拉基米爾,它是一個奇怪的依賴gfortran & ifort。但是,似乎ifort正在尋找libgfortran.so。 ,你有libgfortran.so。那裏列出了。您應該能夠通過ln -s [target] [shortcut]將前者鏈接到後者。也就是,

ln -s /usr/lib64/libgfortran.so.3 /usr/lib64/libgfortran.so.1 
+0

如何在沒有root權限的情況下執行此操作? – Yotam 2013-04-23 19:45:57

+0

通過詢問具有超級用戶權限的人員:集羣的IT幫助臺。 – 2013-04-23 20:39:40

+0

我曾希望避免這種情況。 – Yotam 2013-04-24 06:37:35