我的问题与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软件包(也是本地版本),这有所不同。
感谢。
答案 0 :(得分:0)
我得到了它,所以我想我应该发布我所做的。使用
进行编译-I$(HOME)/include -L$(HOME)/lib -lblas -llapack -lgsl -lglsblas -O3 -std=c++11
似乎可以解决问题。希望我知道究竟是什么解决了这个问题,但我希望这会有所帮助。