所以我在使用 fortran 到 C 库时遇到了一些麻烦。现在,在讨论这个问题之前,我可以告诉你,我不能像某些论坛网站所建议的那样使用 g2c。
现在,解决问题。当我尝试编译一个非常大的项目时,我得到以下信息:
[from the makefile...] g++ -L [~200 dirs] -l [~200 libs] -lf2c
/usr/lib/libf2c.so: undefined reference to 'MAIN__'
collect2: ld returned 1 exit status
make: *** [all] Error 1
现在,我检查了我的/usr/lib
目录并提出以下内容:
$ locate libf2c
/usr/lib/libf2c.so
/usr/lib/libf2c.so.0
/usr/lib/libf2c.so.0.22
所以至少,它就在那里。我用了谷歌,它告诉我输入...
sudo rm /usr/lib/libf2c.so && sudo ln -s /usr/lib/libf2c.a /usr/lib/libf2c.so
...有助于。关于库的陈旧性意味着 gcc 不再正确链接到它,并试图找到一个没有的 main 方法。所以我就这么做了。但是,在我链接到 .a 库后,g++ 现在根本找不到该库。
g++ -L [~200 dirs] -l [~200 libs] -lf2c
/usr/bin/ld: cannot find -lf2c
collect2: ld returned 1 exit status
make: *** [all] Error 1
所以实际上我已经倒退了。有人对我应该从这里去哪里有任何想法吗?
EDIT:所以我想我明白了。我跟着this重新安装库。现在它神奇地不再抱怨 fortran main 不存在。谢谢你们的帮助。