当我尝试制作 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
值得注意的是,开发版本通常是构建东西所需要的版本。
请发布更多错误。