我在尝试编译由一些研究人员开发的程序时遇到了一些麻烦,该程序应该以非常精确的方式计算傅立叶变换和其他一些有用的操作科学论文在这里 https://www.researchgate.net/profile/Gerard_Gomez2/publication/267653088_A_collocation_method_for_the_numerical_Fourier_analysis_of_quasi-periodic_functions_II_Analytical_error_estimates/links/54c750970cf289f0ceccf26a.pdf,而提供了所需的所有文件和 makefile。
我使用 gcc 和 windows10 (18.04) 上可用的 ubuntu 版本,因此,我链接了程序所需的所有库,并在预制 makefile (fftw、lapack、gfortran ..) 中调用,直到这里一切正常,但是一旦我尝试编译,我收到错误消息:
/usr/bin/ld: cannot find -lgfortranbegin
collect2: error: ld returned 1 exit status
Makefile:38: recipe for target 'furian_main' failed
make: *** [furian_main] Error 1
经过一些研究后发现 libfortranbegin 是一个遗留代码并且不再可用(来源:here https://root-forum.cern.ch/t/cant-find-libgfortranbegin-a-when-installing-root-6-06-04/21222 ) ..
所以我的问题是:我是否可以在没有这个遗留库的情况下编译我的程序(有些人说我们可以摆脱这个库,但我不明白他们做了什么..here https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40267)
或者我应该做一些更新或使用另一个库?
感谢您的时间和考虑 :)
解决这个问题的通常方法如下:
- 去除
-lgfortranbegin
- 检查新的链接错误并查看原始源代码中的哪个源文件实现了此功能
- 将此源文件添加到您的存储库和构建中,然后返回到步骤 2。
请注意,它最终可能仍然不起作用,但希望您能够获得丢失的符号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)