我正在尝试按照给出的说明在 mac osx 上安装 f2c/f77 编译器http://www.webmo.net/support/fortran_osx.html我收到以下错误:
./xsum: Permission denied
make: *** [xsum.out] Error 126
请帮忙,因为安装时它忘记创建:/usr/local/bin/f2c
install_f2c_osx.csh 包含:
#! /bin/csh
#! /bin/csh setenv INSTALL /usr/local curl "http://netlib.sandia.gov/cgi-bin/netlib/netlibfiles.tar?filename=netlib/f2c" -o "f2c.tar" tar -xvf f2c.tar gunzip -rf f2c/* cd f2c mkdir libf2c mv libf2c.zip libf2c cd libf2c unzip libf2c.zip cp makefile.u Makefile make cp f2c.h $INSTALL/include cp libf2c.a $INSTALL/lib cd ../src cp makefile.u Makefile make cp f2c $INSTALL/bin cd .. mkdir -p $INSTALL/share/man/man1 cp f2c.1t $INSTALL/share/man/man1 cp fc $INSTALL/bin/f77 chmod +x $INSTALL/bin/f77 cd .. rm -rf f2c echo "==================SUMMARY==================" echo $0 " has built and installed:" find $INSTALL -name '*f2c*' -mmin -5 find $INSTALL -name '*f77*' -mmin -5
答案1
我自己也刚刚遇到了这个问题(在 CentOS 6.5 上),但设法通过在安装脚本的第 6 行添加“chmod”来修复它。请参阅下面的修订脚本。我在下面提供了 Linux 和 MacOSX 安装脚本的修复版本(有细微差别)。
我意识到现在帮助原始发帖者可能已经太晚了,但这可能对其他陷入困境的人有所帮助。很多论坛都有人遇到同样的问题,但没有人能找到解决方案。
令人失望的是,据我所知,“xsum”命令只是验证文件 - 因此这是一个导致安装失败的错误测试步骤 - 讽刺。
如果您随后遇到指向缺少 .so 文件的 ELF 错误,那么您可能缺少 32 位“glibc”库,并且需要安装与您的 64 位“glibc”完全匹配的库(或同时安装/更新两者) - 这是我必须克服的下一个问题。
对于 Linux 安装:
#! /bin/csh
setenv INSTALL /usr/local
curl "http://netlib.sandia.gov/cgi-bin/netlib/netlibfiles.tar?filename=netlib/f2c" -o "f2c.tar"
tar -xvf f2c.tar
gunzip -rf f2c/*
chmod a+x f2c/src/xsum # ADDED chmod for 'xsum' execution permissions.
cd f2c
mkdir libf2c
mv libf2c.zip libf2c
cd libf2c
unzip libf2c.zip
cp makefile.u Makefile
make
cp f2c.h $INSTALL/include
cp libf2c.a $INSTALL/lib
cd ../src
cp makefile.u Makefile
make
cp f2c $INSTALL/bin
cd ..
mkdir -p $INSTALL/share/man/man1
cp f2c.1t $INSTALL/share/man/man1
cp fc $INSTALL/bin/f77
chmod +x $INSTALL/bin/f77
cd ..
rm -rf f2c
echo "==================SUMMARY=================="
echo $0 " has built and installed:"
find $INSTALL -name '*f2c*' -mmin -5
find $INSTALL -name '*f77*' -mmin -5
对于 MacOSX 安装:
#! /bin/csh
setenv INSTALL /usr/local
curl "http://netlib.sandia.gov/cgi-bin/netlib/netlibfiles.tar?filename=netlib/f2c" -o "f2c.tar"
tar -xvf f2c.tar
gunzip -rf f2c/*
chmod a+x f2c/src/xsum # ADDED chmod for 'xsum' execution permissions.
cd f2c
mkdir libf2c
mv libf2c.zip libf2c
cd libf2c
unzip libf2c.zip
cp makefile.u Makefile
make
cp f2c.h $INSTALL/include
cp libf2c.a $INSTALL/lib
cd ../src
cp makefile.u Makefile
make
cp f2c $INSTALL/bin
cd ..
mkdir -p $INSTALL/share/man/man1
cp f2c.1t $INSTALL/share/man/man1
cp fc $INSTALL/bin/f77
chmod +x $INSTALL/bin/f77
cd ..
rm -rf f2c
echo "==================SUMMARY=================="
echo $0 " has built and installed:"
find $INSTALL -name '*f2c*' -mmin -5
find $INSTALL -name '*f77*' -mmin -5
答案2
对于遇到此问题的其他任何人,您也可以检查 xsum 二进制文件是否可供您的系统使用。进入 f2c/src/ 目录,然后:
user@computer$ file xsum
并与以下输出进行比较:
user@computer$ file /bin/sh
它们应该相同。如果不相同,请删除 f2c 附带的 xsum 二进制文件,并使用 xsum.c 源构建自己的二进制文件。也就是说,将 Griffiths 脚本的相关部分编辑为:
<------snip--------> cd ../src cp makefile.u Makefile rm xsum cc -O xsum.c -o xsum chmod +x xsum make cp f2c $INSTALL/bin <------snip----->