Re: [問題]intel fortran compiler

看板Programming作者時間18年前 (2007/11/11 09:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
pro2.f90/pro3.f90編譯時應該不需要link library (Fortran的makefile我沒寫過啦... 不過C++/ASM的makefile以前常寫 至於你後頭的 -lpthread -lmkl_lapack... 是不是指定連結某個程式庫我就不確定了 (我不確定除了指定連結之外, 還有沒有額外宣告什麼東西) 在C++理頭, 要用pthread焊lapack需要在程式那邊include header file 連結時才把他組合起來 我還是建議你把編譯跟連結分開 a.out 完全是使用連結 而prof1.f90輸出也是object檔 ※ 引述《physicschild》之銘言: : 系統: linux :   目前我寫了三個程式,主程式為pro1.f90,其中要用到 : subroutine a和subroutine b。而 pro2.f90就是subroutine a, : 其中subroutine a 要用到subroutine b, pro3.f90 就 : 是subroutine b。接著我用makefile如下: : ======================================================================== : FC = ifort : OP = -O3 : LIB = -L/opt/intel/mkl/8.1/lib/em64t -lmkl -lmkl_lapack -lguide -lpthread : a.out : pro1.f.f90 pro2.o pro3.o : $(FC) $(OP) -o a.out pro1.f90 pro2.o pro3.o $(LIB) : pro2.o : pro2.f : $(FC) $(OP) -c pro2.f90 $(LIB) : pro3.o : pro3.f : $(FC) $(OP) -c pro3.f90 $(LIB) : clean : : rm *.o : ======================================================================= : make後執行./a.out 卻發生以下錯誤: : ======================================================================= : n= 100 particleN 1 L= 0 parL= 5 : n= 100 L= 5 parL= 5 : end of Pl(theta) !!到這裡算是執行正確。 : forrtl: severe (174): SIGSEGV, segmentation fault occurred : Image PC Routine Line Source : libifcore.so.5 0000002A959C45FC Unknown Unknown Unknown : libpthread.so.0 000000373870C4F0 Unknown Unknown Unknown : libifcore.so.5 0000002A959C45D5 Unknown Unknown Unknown : libpthread.so.0 000000373870C4F0 Unknown Unknown Unknown : ======================================================================== : 可是奇怪的,我把pro2.f90的程式碼直接貼到pro1.f90裡面,接著執行: : ifort –O3 -L/opt/intel/mkl/8.1/lib/em64t -lmkl -lmkl_lapack -lguide –lpthread pro1.f90 pro3.o : 接著執行產生的執行檔,結果完全沒有錯誤。 : 由上面應該可以確認我的程式碼沒有錯誤,但我有找不 : 出makefile這樣寫有什麼不對。又或者把主程式和subroutine : 拆開成兩個檔案有什麼特別需要注意的嗎?請各位高手給些意見吧。 : 謝謝! : ※ 編輯: physicschild 來自: 140.112.101.161 (11/08 18:54) : 推 yingwen:我自己是用 ifort 直接compile兩個檔案 61.22.53.53 11/09 23:15 : → yingwen:沒用過make 所以.....不知道有沒有幫上忙 61.22.53.53 11/09 23:16 : → yingwen:ex. "ifort a.f b.f" 61.22.53.53 11/09 23:16 : → physicschild:謝謝囉! 140.112.248.169 11/10 12:50 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.115.77.233
文章代碼(AID): #17Dc6c4C (Programming)
討論串 (同標題文章)
文章代碼(AID): #17Dc6c4C (Programming)