Fortran Coder

查看: 44|回复: 3

[编译器] 如何将ifort在linux下编译产生的执行文件能够在windows下运行

[复制链接]

3

帖子

2

主题

0

精华

新人

F 币
16 元
贡献
8 点
发表于 2019-4-7 10:46:14 | 显示全部楼层 |阅读模式
导师让我将一个在linux系统下通过ifort编译fortran77源文件产生的执行程序能够在windows系统下运行,想问问各位好心大佬这个要怎样实现。
下面附上makefile文件,感觉似乎需要修改makefile文件,需要用到交叉编译什么的,但我不是特别懂
[Make] 纯文本查看 复制代码
########################################
# COMPILER OPTIONS
# vortex
#f77flg = -xopenmp=parallel -fast -xtarget=opteron -xarch=amd64 -xipo 

MKLINC=/opt/intel/mkl/include/intel64
f77flg = -openmp -fast -I${MKLINC} 
#f77flg = -xopenmp=parallel -fast -xarch=amd64 
#f77flg = -fast -xopenmp=parallel -xtarget=opteron -xarch=amd64a
#f77flg = -xopenmp=parallel -fast -xtarget=opteron 

# vorticity
#ifcflg = -axT -O3 -openmp -tpp7 -xT 
#ifcflg = -axT -O3 -openmp -tpp7 -xT -ipo -align commons
ifcflg = -openmp 
#ifcflg = -g

##########################################
# LINKING OPT
# vortex
#f77LDflg = -L/opt/SUNWspro/lib -lsunmath
#f77LDflg = -L/opt/SUNWspro/lib -lsunperf
#f77LDflg = -xlibmopt -xlic_lib=sunperf 
#f77LDflg = -xlibmopt -L/opt/lapack-3.1.1/LIB -llapack -lblas
#f77LDflg = -xlibmopt -L/opt/lapack-3.1.1/LIB -llapack64 -lblas64

# vorticity
#ifcLDflg = ${atlas} -L/usr/lib/gcc/x86_64-redhat-linux/3.4.3 -lg2c 
#ifcLDflg = ${atlas} -L/usr/lib/gcc/x86_64-redhat-linux/3.4.3 -lg2c 
MKLPATH=/opt/intel/mkl/lib/intel64
MKLR=/opt/intel/mkl/lib/intel64
#ifcLDflg = -L{MKLPATH} -lmkl_lapack

atlas = -L${MKLPATH}   
#ifcLDflg = ${atlas} -WL,-R${MKLR} -lmkl_lapack95_ilp64 -lmkl_lapack95_lp64 -lmkl_blas95_ilp64

ifcLDflg = ${atlas} -WL,-R${MKLR} -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread -lm
#atlas = -L/usr/lib -llapack -lblas
#atlas = -L/usr/lib64 -llapack -lblas -lguide -lpthread
#atlas = -L${MKLPATH} -lmkl_lapack -lmkl_em64t -lmkl_lapack32 -lmkl -lguide -lpthread
#atlas = -L${MKLPATH} -lmkl_lapack -lmkl_em64t -lmkl_lapack32 -lmkl -lguide -lpthread
#MKLPATH=/opt/intel/mkl/8.1.1/lib/em64t 

##########################################
# Modules
objects = vortex_dyn_v2.o accel.o beta_h.o beta_i.o bounce.o body_parms.o \
        create.o coefs.o checkNAN.o\
        destroy.o diffuse.o dir_accel.o direct.o smooth.o \
	errcheck.o euler_dyn.o euler_plv.o extpress.o \
        flush.o force.o force_y.o\
        gamma_c.o simq.o gausid.o \
	input.o initial.o initslip.o intsect_V191.o lagrange.o \
        movebody.o  matset_c.o \
	openfiles.o orient.o orientf.o out.o outv-tec.o outv.o outfs.o\
	pqamn.o panels.o randwalk.o regridbo.o regridi.o regridfs.o\
	regridr.o regridl.o redistsubm.o solve.o sortie.o spline.o \
	t0solnpc.o t0solnpl.o update_p.o tcmplx.o testNAN.o \
	vels.o velvc.o vprobe.o yprobe.o psiconst.o orient_fudge.o

##########################################
# Other Variables
#ifeq (${IFC},yes)
#FC = ifort
#else
FC = ifort
#endif

.f.o :
#ifeq (${FC},ifort)
#	${FC} ${ifcflg} -c $<
#else 
	${FC} ${f77flg} -c $<
#	${FC} -c $<

#endif

BMIW191:${objects}
#ifeq  (${FC},ifort)
#	 @date
#	 @${FC} ${ifcflg} ${objects} ${ifcLDflg} -o $@
#else 
	@date
	@${FC} ${ifcflg} ${objects} ${ifcLDflg} -o $@
# 	@${FC} ${ifcflg} ${objects} -o $@
#endif

clean:
	-rm *.o *~



回复

使用道具 举报

331

帖子

1

主题

0

精华

宗师

F 币
1778 元
贡献
1174 点
发表于 2019-4-7 12:36:37 | 显示全部楼层
本帖最后由 li913 于 2019-4-7 12:41 编辑

这个要求就很奇特了。linux下得到的可执行文件,没法用于win,除非交叉编译(当然还有一些不完善的黑科技),成本太高。如果你有源代码,在win下重新生成就是。

3

帖子

2

主题

0

精华

新人

F 币
16 元
贡献
8 点
 楼主| 发表于 2019-4-7 16:40:25 | 显示全部楼层
li913 发表于 2019-4-7 12:36
这个要求就很奇特了。linux下得到的可执行文件,没法用于win,除非交叉编译(当然还有一些不完善的黑科技) ...

好的,老哥有没有推荐的windows下关于fortran77的编译软件呀,我试过SimplyFortran,但是编译时产生太多警告与错误,所以想打听一个与ifort更兼容的

331

帖子

1

主题

0

精华

宗师

F 币
1778 元
贡献
1174 点
发表于 2019-4-8 12:07:49 | 显示全部楼层
RicardoMLu 发表于 2019-4-7 16:40
好的,老哥有没有推荐的windows下关于fortran77的编译软件呀,我试过SimplyFortran,但是编译时产生太多 ...

ifort是intel fortran compiler的linux版,它还有win版。
FAQ之 Intel Fortran + VS 安装配置
http://fcode.cn/guide-30-1.html

FAQ之 Intel Fortran + VS 基本操作
http://fcode.cn/guide-31-1.html
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

QQ|捐赠本站|Archiver|关于我们 About Us|群聊|Fcode

GMT+8, 2019-4-19 07:16

Powered by Discuz! X3.2

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表