生成文件中的错误:/usr/bin/ld:找不到 -lstdc++

生成文件中的错误:/usr/bin/ld:找不到 -lstdc++

当我尝试制作 CAMB 文件时,出现此错误:

usr/bin/ld: cannot find -lstdc++
collect2: error: ld returned 1 exit status
make: *** [camb] Error 1

缺少库吗?!我该如何添加库?!

CAMB 是为 2015 年普朗克数据编写的 Fortran 代码,剑桥信息网

另外,使用此命令locate libstdc我得到

/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19
/usr/share/doc/libstdc++6
/usr/share/gcc-4.8/python/libstdcxx
/usr/share/gcc-4.8/python/libstdcxx/__init__.py
/usr/share/gcc-4.8/python/libstdcxx/v6
/usr/share/gcc-4.8/python/libstdcxx/v6/__init__.py
/usr/share/gcc-4.8/python/libstdcxx/v6/printers.py
/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py
/var/cache/apt/archives/libstdc++6_4.8.4-2ubuntu1~14.04.1_amd64.deb
/var/lib/dpkg/info/libstdc++6:amd64.list
/var/lib/dpkg/info/libstdc++6:amd64.md5sums
/var/lib/dpkg/info/libstdc++6:amd64.postinst
/var/lib/dpkg/info/libstdc++6:amd64.postrm
/var/lib/dpkg/info/libstdc++6:amd64.prerm
/var/lib/dpkg/info/libstdc++6:amd64.shlibs
/var/lib/dpkg/info/libstdc++6:amd64.symbols

这是否意味着该库存在?!我该如何修复 makefile 中的库搜索路径?

有人能帮我解决这个问题吗?我很感激你的时间和帮助

答案1

更新

我想我可能找到了解决方案。据说-lstdc++不需要,因此可以从 makefile 中删除。运行以下命令来解决此问题。

首先,进入 CAMB 目录,然后运行以下命令:

sed -i 's/F90CRLINK ?= -lstdc++/#F90CRLINK ?= -lstdc++/g' Makefile_main
make clean
make CC=/usr/bin/gcc

如果一切顺利的话,CAMB 二进制文件现在应该存在。

请发布更多错误,谢谢!


原始帖子

我按照这些步骤操作并在 15.10 上成功编译:

sudo apt-get install gfortran git
git clone https://github.com/cmbant/CAMB.git
cd CAMB
make CC=/usr/bin/gcc

二进制文件camb应在当前目录中构建。

我也从主站点下载了源代码并得到了相同的结果。

尝试安装这些库:

sudo apt-get install libstdc++-4.8-dev libstdc++6:amd64 libstdc++6:i386

值得注意的是,开发版本通常是构建东西所需要的版本。

请发布更多错误。


相关内容