安装gcc 4.7,但无法成功运行程序
Install gcc 4.7 but cannot run program sucessfully
我需要使用C++11,所以我将GCC从4.1更新到4.7。我编译了源代码并进行了安装。gcc -version
将显示4.7.0(一切看起来都很好)。我用编译了我的程序
g++ -O2 -std=c++11 -o wdSer wdSer.cpp
在那之后,我运行了我的程序./wdSer
,有一些信息如下:
./wdSer: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by ./wdSer)
./wdSer: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by ./wdSer)
./wdSer: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.10' not found (required by ./wdSer)
./wdSer: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./wdSer)
谁能告诉我如何解决它?
首先尝试这个:
LD_LIBRARY_PATH=/usr/local/lib64:$LD_LIBRARY_PATH ./wdSer
/usr/local/lib64是64位gcc构建的默认库目录。将LD_LIBRARY_PATH设置为包含该目录告诉链接器在该目录中查找库文件。
如果这不起作用,看看g++-v 的输出
在我的系统上,我得到了这个:
$ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/gcc-4.8.2/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.8.2/configure --prefix=/usr/local/gcc-4.8.2 --with-isl=/usr/local/isl-0.12.2 --with-cloog=/usr/local/cloog-0.18.1
Thread model: posix
gcc version 4.8.2 (GCC)
在这个输出中,您正在查找前缀--prefix后面的目录。将/lib64添加到该前缀的末尾,您就拥有了库目录。在我的系统上,它是/usr/local/gcc-4.8.2,所以我需要链接器在/usr/local/gcs-4.8.2/lib64中查找我的libstdc++。所以我运行这样的程序:
LD_LIBRARY_PATH=/usr/local/gcc-4.8.2/lib64:$LD_LIBRARY_PATH ./a.out
如果您不想在运行程序之前设置LD_LIBRARY_PATH,则应该使用-Wl,-rpath=构建程序,如下所示:
$ g++ -std=c++11 -o wdSer -Wl,-rpath=/usr/local/lib64/ wdSer.cc
你可以在程序上使用ldd来查看它链接到的共享库的位置:
$ ldd a.out
linux-vdso.so.1 => (0x00007fff8a506000)
libstdc++.so.6 => /usr/local/gcc-4.8.2/lib64/libstdc++.so.6 (0x00007fa3c6aaf000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa3c6811000)
libgcc_s.so.1 => /usr/local/gcc-4.8.2/lib64/libgcc_s.so.1 (0x00007fa3c67fa000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa3c646f000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa3c6bbc000)
在这里,a.out是我用选项-Wl,-rpath=/usr/local/gcc-4.8.2/lib64构建的一个程序,所以链接器首先在那里查找,并找到与我的gcc 4.8.2安装配套的libstdc++。
请参阅有关-v标志的文档:http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Overall-Options.html#Overall-选项(和搜索-v)
-Wl标志:http://gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Link-Options.html#Link-选项(向下滚动至底部)
和-rpath标志:https://sourceware.org/binutils/docs-2.24/ld/Options.html#Options(并搜索-rpath)
- 代码使用向量成功运行,但使用数组显示错误
- 为什么我无法成功运行以下刽子手游戏机代码?我可以在 devc++ 中成功运行相同的代码
- 首先我已经成功安装了 caffe,但是当我运行一个 caffe 项目时,cmake 还可以,后来会发出很多错误
- 如果服务器未运行,则async_connect成功
- 多次成功运行代码后C++ bad_alloc错误
- G++ 和 CL(VS2017) 都编译成功,但 cl 编译的可执行文件运行异常
- Cmake并需要两次运行才能成功构建代码
- 声明全局变量 <vector>,代码将无法成功运行
- 在Qt中,我如何成功运行两个查询
- 为什么这个C++程序即使没有构造类对象也能成功运行
- Qt 编译成功,但运行失败
- C++程序生成成功,但在运行时出错
- 当shared_ptr超出范围时,c++崩溃..在成功运行至少100000次之后
- OpenCV简单代码编译成功,但在运行时崩溃
- ImanalogateLoggedOnUser 成功,但辅助进程仍在初始上下文中运行
- 使用 Visual Studio,为什么C++程序无法在调试模式下运行,而在发布模式下成功运行
- 在成功运行10小时后,在发布模式下从windows应用程序中获得异常,如何检测出问题
- Socket C++程序在运行时成功编译崩溃
- 安装gcc 4.7,但无法成功运行程序
- 如何成功运行一个使用ogdf库的c++文件