作者WPC001 ()
站内Programming
标题Re: [问题]intel fortran compiler
时间Sun Nov 11 09:57:57 2007
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