我目前正在尝试制作和安装一个专业软件套件(https://github.com/scottransom/presto),遇到此错误:
gfortran -g -fPIC -o /path-to/presto/bin/psrorbit powerplot.o xyline.o psrorbit.o -L/usr/local/Cellar/cfitsio/3.450/lib -lcfitsio -lcurl -L/path-to/presto/lib -lpresto -L/usr/local/lib -lfftw3f -L/usr/local/lib/pgplot -lcpgplot -lpgplot -L/opt/X11/lib -lX11 -L/opt/X11/lib -lpng16 -lm
ld: mach-o string pool extends beyond end of file in /usr/local/lib/libcpgplot.dylib file '/usr/local/lib/libcpgplot.dylib' for architecture x86_64
collect2: error: ld returned 1 exit status
make: *** [psrorbit] Error 1
我不认为这是一个与PRESTO本身相关的问题,因为一些搜索(参见this,this和this)指向一些基本的东西,也许是Xcode。我目前有11.3版本,我还安装了命令行工具。那么,错误本身意味着什么呢?任何帮助都是有用的!
2条答案
按热度按时间2fjabf4q1#
根据我对Apple's version of
ld
源代码的阅读,这个错误意味着对象中的符号表在文件结束时过早结束。在链接时,似乎对对象文件执行了相当多的健全性检查。您的
/usr/local/lib/libcpgplot.dylib
副本可能已损坏。gwbalxhn2#
在我的例子中,我把我最新的更改隐藏在我记得它成功构建的地方,但问题仍然存在。
对我有用的是:在Xcode中运行CMD + Shift + K;关闭Xcode;在终端运行
在那之后,我启动了Xcode,这个问题得到了解决。不知道它为什么出现,也不知道它为什么消失。我想,只是Xcode让我的工作时间更加多样化😂