Re: [問題]intel fortran compiler
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章