使用.sh文件在源代码中编译命令

时间:2013-08-14 14:19:32

标签: linux fortran

我使用FORTRAN来解决偏微分方程。主程序和子程序已放入.f文件中。我有一个.sh文件来编译linux操作系统源代码中的命令。此文件已附加。但我没能跑这个。经过一周的挣扎,我真的需要一些帮助。如果您有任何帮助,将非常感谢!!!

#!/bin/bash
#
mkdir temp
cd temp
rm *
~/binc/$ARCH/f77split ../fishpack.f
#
for FILE in `ls -1 *.f`;
do
  gfortran -c -g $FILE >& compiler.txt
  if [ $? -ne 0 ]; then
    echo "Errors compiling " $FILE
    exit
  fi
  rm compiler.txt
done
rm *.f
#
ar qc libfishpack.a *.o
rm *.o
#
mv libfishpack.a ~/libf77/$ARCH
cd ..
rmdir temp
#
echo "Library installed as ~/libf77/$ARCH/libfishpack.a."

1 个答案:

答案 0 :(得分:0)

这看起来像shell脚本只是试图编译fortran文件,但它不是使用gfortran的内部工具链,而是手动编译部件然后将它们链接在一起。我有一种感觉(尽管我还没有确认),对程序ar的调用很糟糕,即使它已经走得那么远(我猜它应该是ar -qc instead of ar qc。)。

无论如何,如果所有的源都在一个别人给你的fortran文件中(fishpack.f),你可以通过一次调用gfortran来编译整个文件:

gfortran fishpack.f

它应该创建(默认情况下)具有文件名a.out的输出可执行文件。如果fortran代码的结构不能被集成到一个文件中,那么你可能需要将一些东西分开( - 至少更新到f90,尽管这是一个旁边 - )。

祝你好运。