c++ - 使用 gcc 的本地拷贝进行编译,不兼容 libstdc++

标签 c++ c++11 gcc

我遇到的问题与 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/

相关文章:

c++ - 模板编程 : specialization and enable_if

c++ - 如何创建用于 std::chrono 函数的自定义时钟?

c - 消息 "the ABI of passing struct with a flexible array member has changed in GCC 4.4"重要吗?

C struct typedef 和声明导致指针错误

c++ - arm-linux-androideabi STL编译报错

android - 在 android 上使用 JNI 进行图像解码和操作

c++ - 如何在不使用 strcmp 和方括号的情况下比较字符串?

c++ - 整数 vector vector 的统一初始化

c++ - 从 C++ 调用 ScaLAPACK

c++ - 在调用基类之前需要调用成员的方法