当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [请教] 求编译程序的简单办法
帖子发表于 : 2009-01-13 23:08 

注册: 2009-01-09 1:04
帖子: 68
送出感谢: 0 次
接收感谢: 0 次
我要编译和运行fortran程序
现在的做法是:
1、使用gedit编写程序,保存为a.f95
2、终端执行命令:gfortran a.f95 生成:a.out文件
3、终端执行 ./a.out 得到输出
4、终端执行gnuplot,在fnuplot里画图

这个过程太麻烦了,linux下还没有fortran 的集成编译软件

有简单的办法吗?


页首
 用户资料  
 
2 楼 
 文章标题 : Re: [请教] 求编译程序的简单办法
帖子发表于 : 2009-01-14 11:12 

注册: 2009-01-09 1:04
帖子: 68
送出感谢: 0 次
接收感谢: 0 次
自己顶一下,大家也这么做得话,也可以告诉我一声


页首
 用户资料  
 
3 楼 
 文章标题 : Re: [请教] 求编译程序的简单办法
帖子发表于 : 2009-01-14 11:19 

注册: 2008-09-05 23:13
帖子: 38
送出感谢: 0 次
接收感谢: 0 次
可以试试写个shell脚本,一次性执行四个步骤。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: [请教] 求编译程序的简单办法
帖子发表于 : 2009-01-14 11:26 

注册: 2009-01-09 1:04
帖子: 68
送出感谢: 0 次
接收感谢: 0 次
写过一个类似的脚本,但是,发现缺乏同步,往往编译过程还没有结束,脚本就运行过去了,然后报一个错


页首
 用户资料  
 
5 楼 
 文章标题 : Re: [请教] 求编译程序的简单办法
帖子发表于 : 2009-01-14 11:36 

注册: 2008-09-05 23:13
帖子: 38
送出感谢: 0 次
接收感谢: 0 次
随便说说,我也没试过。
如果写makefile呢?


页首
 用户资料  
 
6 楼 
 文章标题 : Re: [请教] 求编译程序的简单办法
帖子发表于 : 2009-01-14 18:21 

注册: 2009-01-09 1:04
帖子: 68
送出感谢: 0 次
接收感谢: 0 次
给点儿详细的资料吧,网址什么的也行,我现在还不知道什么是makefile呢


页首
 用户资料  
 
7 楼 
 文章标题 : Re: [请教] 求编译程序的简单办法
帖子发表于 : 2009-01-15 10:26 

注册: 2008-09-05 23:13
帖子: 38
送出感谢: 0 次
接收感谢: 0 次
关于makefile可以参考论坛的wiki http://wiki.ubuntu.org.cn/index.php?tit ... iant=zh-cn

关于bash脚本可以参考 《高级Bash脚本编程指南》 网上可以下载,在线版本: http://pangty.ta139.com/bash-guide/abs3.7cnhtm/

我对makefile和bash脚本也不熟,对于楼主的问题我会这样做:

假设我的工作流程是:
两个fortran文件 fem01.f90 和 fem01mod.f90 其中 fem01mod.f90 包含 module,两个文件编译生成fem01,fem01会输出一个结果文件 result.txt,用gnuplot 把数据画出来。写两个脚本,一个plot.gnu用于gnuplot绘图,一个makefile用于编译程序并调用gnuplot画图。

plot.gnu这样写,直接把图形输出到文件,不显示出来:
代码:
set terminal png
set output "x.png"
plot "result.txt" using 1:2



makefile就这样写:
代码:
FORTRAN = gfortran

fem01: fem01mod.o fem01.o
   $(FORTRAN) fem01.o fem01mod.o -o fem01

fem01.o: fem01.f90
   $(FORTRAN) -c fem01.f90

fem01mod.o: fem01mod.f90
   $(FORTRAN) -c fem01mod.f90

test:
   ./fem01
   gnuplot plot.gnu

clean:
   rm fem01.o  fem01mod.o fem01 fem01mod.mod result.txt


在命令终端输入 make 就可以编译程序,输入 make test 会运行程序并调用gnuplot绘图,输入 make clean 会清理多余的文件。

楼主说编译工作还没结束gnuplot就运行了,我没碰到过,可能我的程序太小,编译起来很快,bash中可以通过$?判断上一条命令是不是顺利结束了,我举个例子,楼主可以参考《高级Bash脚本编程指南》第六章 退出和退出状态
下面这个脚本会清理文件,重新编译,如果编译成功就绘图

代码:
#! /bin/bash
#如果已经有编译生成的文件,删除它们
if [[ -e fem01 ]]
then make clean
fi
#编译
make
#当上一步运行成功后才运行以下语句
if [[ $? = 0 ]]
then make test
fi


页首
 用户资料  
 
8 楼 
 文章标题 : Re: [请教] 求编译程序的简单办法
帖子发表于 : 2009-01-15 14:42 

注册: 2009-01-09 1:04
帖子: 68
送出感谢: 0 次
接收感谢: 0 次
称谢~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译