我需要使用GCC 4.7的libstdc ++将构建在Ubuntu 12.10上的C++应用程序部署到运行Ubuntu 10.04的系统,该系统附带了相当旧版本的libstdc ++.
目前,-static-libstdc++ -static-libgcc正如本博客文章所建议的那样,我正在编译:静态链接libstdc ++.作者在静态编译libstdc ++时警告不要使用任何动态加载的C++代码,这是我尚未检查的内容.到目前为止,一切似乎都很顺利:我可以在Ubuntu 10.04上使用C++ 11功能,这就是我所追求的.
我注意到这篇文章是从2005年开始的,从那以后可能发生了很大变化.它的建议仍然是最新的吗?我应该注意哪些潜在的问题?
当我在编译后运行我的程序时,我收到以下错误:
./prog:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:
CXXABI_1.3.8' not found (required by ./prog) ./prog: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version找不到版本GLIBCXX_3.4.19(./prog要求)./ prog:/ usr/lib/x86_64-linux-gnu/libstdc ++.so.6:找不到版本`GLIBCXX_3.4.20'(/home/arman/lib/boost_1_55_0/stage/lib/libboost_serialization.so.1.55.0要求)
我有两个升压1.55.0和安装GCC 4.9.0 ~/lib/boost_1_55_0,并~/lib/gcc-4.9.0分别与我猜这就是为什么我有问题,但我不知道如何去修复它.
我~/.profile包含以下行:
export LD_LIBRARY_PATH =/home/user/lib/boost_1_55_0/stage/lib:$ LD_LIBRARY_PATH
我在Fedora 24上运行matlab R2016a,我无法使用plot命令.
这是我得到的错误:
Error using gca
While setting the 'Parent' property of 'Axes':
Can't load '/usr/local/MATLAB/R2016a/bin/glnxa64/libmwosgserver.so': /usr/local/MATLAB/R2016a/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6: version 'CXXABI_1.3.8' not found (required by /lib64/libGLU.so.1)
Error in newplot (line 73)Run Code Online (Sandbox Code Playgroud)ax = gca(fig);
另外我已经看到 如何修复:[程序名称] /usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本CXXABI_1.3.8([程序名称]要求) 并且它没有帮助.
我重新安装了Anaconda2.当'python -c'导入tensorflow''时出现以下错误
ImportError:/home/jj/anaconda2/bin/../lib/libstdc++.so.6:找不到版本`CXXABI_1.3.8'(/home/jj/anaconda2/lib/python2.7/site-packages/需要tensorflow /蟒/ _pywrap_tensorflow.so)
我是Mint的新手.我从.bin/ home/user/Android目录下的文件安装了Genymotion模拟器.当我尝试执行Genymotion时,我会收到这样的消息:
/ Android/genymotion $ ./genymotion
./genymotion:加载共享库时出错:libdouble-conversion.so.1:无法打开共享对象文件:没有这样的文件或目录
正如我从快速搜索中所理解的,我应该链接这个转换库.但我知道做错了什么;)有人可以建议这样做的正确方法.最好有一些解释.
UPDATE
在我使用@Atheror建议后,我收到了另一条消息:
./genymotion
./genymotion:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本"CXXABI_1.3.8"(/opt/genymobile/genymotion/libQt5Core.so.5要求)
./genymotion:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本`GLIBCXX_3.4.20'(/opt/genymobile/genymotion/libQt5WebKit.so.5要求)
./genymotion:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本`CXXABI_1.3.8'(/opt/genymobile/genymotion/libicui18n.so.52要求)
./genymotion:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本`CXXABI_1.3.8'(/opt/genymobile/genymotion/libicuuc.so.52要求)
./genymotion:/usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本`CXXABI_1.3.8'(/opt/genymobile/genymotion/libicuuc.so.52要求)
UPDATE
经过一些额外的搜索,我试图添加缺少的库.在此之后,尝试运行genymotion导致genymotion.log中的此类记录:
[Genymotion] [致命]此应用程序无法启动,因为它无法找到或加载Qt平台插件"xcb".
可用的平台插件有:eglfs,kms,linuxfb,minimal,minimalegl,offscreen,xcb.
所以xcb插件可用.在web上再次快速运行之后,我发现了使用ldd命令检查依赖关系的建议并得到:
平台#ldd libqxcb.so
linux-vdso.so.1 => (0x00007ffff97ec000)
libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f6b14c5d000)
libXi.so.6 => /usr/lib/x86_64-linux-gnu/libXi.so.6 (0x00007f6b14a4d000)
libxcb-render-util.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render-util.so.0 (0x00007f6b14849000)
libSM.so.6 => /usr/lib/x86_64-linux-gnu/libSM.so.6 (0x00007f6b14641000)
libICE.so.6 => /usr/lib/x86_64-linux-gnu/libICE.so.6 (0x00007f6b14425000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f6b14221000)
libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f6b1400a000)
libxcb-render.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007f6b13e01000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f6b13be2000)
libxcb-image.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-image.so.0 (0x00007f6b139dd000)
libxcb-icccm.so.4 => /usr/lib/x86_64-linux-gnu/libxcb-icccm.so.4 (0x00007f6b137d8000)
libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f6b135d2000)
libxcb-xfixes.so.0 …Run Code Online (Sandbox Code Playgroud) 我知道这个问题已被多次询问,而我仍然坚持使用它.我已经回顾了之前被问过的所有答案,例如 找不到版本`CXXABI_1.3.8'(需要......)
如何修复:[程序名称] /usr/lib/x86_64-linux-gnu/libstdc++.so.6:找不到版本CXXABI_1.3.8'([程序名称]要求)
我读过https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.how_to_set_paths
我的系统是RHEL7,之前安装了gcc 4.8,我安装了gcc 4.9 yum -y install devtoolset-3-gcc devtoolset-3-gcc-c++
然后成功安装了gcc 4.9.有了gcc -v,我明白了
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/opt/rh/devtoolset-3/root/usr --mandir=/opt/rh/devtoolset-3/root/usr/share/man --infodir=/opt/rh/devtoolset-3/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.9.2-20150212/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)
Run Code Online (Sandbox Code Playgroud)
然后我LD_LIBRARY_PATH按照其他人的建议设置:
export LD_LIBRARY_PATH=/opt/rh/devtoolset-3/root/usr/lib/gcc/x86_64-redhat-linux/4.9.2:${LD_LIBRARY_PATH}
Run Code Online (Sandbox Code Playgroud)
但是,错误仍然存在,似乎我的新版本gcc4.9不起作用.任何帮助,将不胜感激!
linux ×4
gcc ×3
c++ ×2
android ×1
boost ×1
cudnn ×1
fedora ×1
gcc4.9 ×1
genymotion ×1
installation ×1
libstdc++ ×1
linux-mint ×1
matlab ×1
plot ×1
python ×1
rhel ×1
tensorflow ×1
xcb ×1