共计 1491 个字符,预计需要花费 4 分钟才能阅读完成。
虹软 3.0SDK 版本 Linux 要求:
文档中开发环境说明:库依赖 GLIBC 2.17 及以上
库依赖 GLIBCXX 3.4.19 及以上
编译器 GCC 4.8.2 及以上
因服务器是 centos6,所以这 3 个都要更新,非常蛋疼。GLIBC 更新详细见另外一篇文章,后面 2 个 gcc 版本更新和 GLIBCXX 是一起的,但是在 gcc 更新完成之后,需要重建软连接,不重建是搜不到最新 GLIBCXX 版本的。
但是在调用测试的过程中,却发现报这样的错误。
/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found在终端上输入如下命令:strings /usr/lib64/libstdc++.so.6|grep GLIBCXX
得到结果:
GLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6  GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH到 13 到头了,所以报错啦。
为此,工作主要是两步:
第一步:升级 GCC。
下载了最新的 6.2.0 版本。
wget https://gcc.parentingamerica.com/releases/gcc-6.2.0/gcc-6.2.0.tar.bz2gcc安装文件下载完成后,执行以下命令解压文件:
tar -xf gcc-6.2.0.tar.bz2解压完成后,执行以下命令进入工作目录:
cd gcc-6.2.0执行 download_prerequisites 脚本,下载 gcc 依赖文件和库:
./contrib/download_prerequisitesdownload_prerequisites脚本,会下载安装 gcc 所需的 mpfr、gmp 和mpc文件。
建立一个输出目录,编译时所有生成的中间文件都放到该目录下:
mkdir build工作目录切换至输出目录,并在其中执行配置和安装:
cd build执行 configure 配置安装文件:
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib配置完成后,执行以下命令,编译gcc:
make -j 6注意 :编译gcc 时间较长,可以多启用多个核数来执行。
编译完成后,安装gcc:
make install安装完成后还需要替换系统默认的 gcc,执行以下命令,查找6.2 版本的安装文件:
第二步:升级 GLIBCXX
注意,进入 GCC 编译输出目录,.libs 是隐藏的:build/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs
用下面的命令查看:
strings libstdc++.so.6.0.22|grep GLIBCXX一般来讲,里面就有满足需要的 GLIBCXX 版本了。
然后,把该文件拷贝到了 /usr/lib64 下.
然后将 libstdc++.so.6 指向 libstdc++.so.6.0.22:
这一步一定要在 ROOT 权限下执行。
rm -r libstdc++.so.6rm: remove symbolic link `libstdc++.so.6'? yln -s libstdc++.so.6.0.18 libstdc++.so.6