我遇到的问题与 how to dynamically link to local copy of libc.so.6, libstdc++.so.6 on system with old version of gcc 中提出的问题非常相似我按照那里提供的答案。总而言之,问题是我有使用 C++11 编写的代码,而集群系统管理员不会将 gcc 编译器升级到支持 C++11 的版本。我在主目录中手动安装了 gcc4.9(使用 --prefix=$HOME)。我使用以下标志编译我的代码:
-I/home/stroberg/include -L/home/stroberg/lib -lc -lstdc++ -llapack -lblas -O3 -std=C++11
我也设置
export LD_LIBRARY_PATH=/home/stroberg/lib:$LD_LIBRARY_PATH
在进入链接阶段之前,编译一直很顺利,但出现了以下错误:
/usr/bin/ld: skipping incompatible /home/stroberg/lib/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /home/stroberg/lib/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /home/stroberg/lib/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /home/stroberg/lib/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /home/stroberg/lib/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: skipping incompatible /home/stroberg/lib/libgcc_s.so when searching for -lgcc_s
任何可能导致问题的想法?我也在使用 Armadillo 包(也是本地版本),这有什么不同。
谢谢。
最佳答案
我让它工作了,所以我想我应该发布我所做的。编译
-I$(HOME)/include -L$(HOME)/lib -lblas -llapack -lgsl -lglsblas -O3 -std=c++11
似乎可以解决问题。希望我确切地知道是什么解决了这个问题,但我希望这会有所帮助。
关于c++ - 使用 gcc 的本地拷贝进行编译,不兼容 libstdc++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27006662/