最近喜欢上了draco压缩3d模型,越发不可收拾,draco性能非常强劲,压缩比很高。通常一个100M的obj格式的模型压缩后只有5M左右,很好的解决obj模型文件较大,快速在网络传输的问题。我服务器选型centos7.5 minial (官网版本号1804)安装,网上找了一圈没找到centos 7 下draco安装包,draco必须使用更高的gcc和cmake版本,于是自己动手丰衣足食。整个过程需要科学上网,因此此文最后我提供了需要下载的所有依赖包,过程如下。
升级gcc 5.4.0
1.获取按转包并解压 (此处使用5.4.0)
cd /usr/local/src
wget https://ftp.gnu.org/gnu/gcc/gcc-5.4.0/gcc-5.4.0.tar.bz2
避免科学上网gcc-5.4.0.tar.bz2
yum -y install bzip2
tar -jxvf gcc-5.4.0.tar.bz2
2.下载依赖
cd gcc-5.4.0
./contrib/download_prerequisites
3.生成makefile
mkdir gcc-build-5.4.0
cd gcc-build-5.4.0
../configure –enable-checking=release –enable-languages=c,c++ –disable-multilib
4.编译,安装
make
make install
解决运行程序gcc出现’GLIBCXX_3.4.21’ not found 问题
这是因为升级gcc时,生成的动态库没有替换老版本gcc的动态库导致的,将gcc最新版本的动态库替换系统中老版本的动态库即可解决,运行以下命令检查动态库:
strings /lib64/libstdc++.so.6 | grep GLIBC
从输出结果可以看到并没有“GLIBCXX_3.4.21“,所以可以断定我们的程序运行时动态加载的是老的动态库,解决这个问题需要将当前链接文件的链接指向改成最新的动态库地址:
cp /usr/local/lib64/libstdc++.so.6.0.21 /lib64
cd /lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.21 libstdc++.so.6
然后你可以执行以下命令来查看’GLIBCXX_3.4.21’已经可以找到了
5、看看gcc版本
gcc -v
升级cmake 3.5.2
1、wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz
避免科学上网cmake-3.5.2.tar.gz
2、可以编译安装
cmake-3.5.2.tar.gz
tar zxf cmake-3.5.2.tar.gz
cd cmake-3.5.2.tar.gz
./bootstrap && gmake && gmake install
3、查看版本
cmake -version
编译draco
1、下载源码 https://codeload.github.com/google/draco/tar.gz/1.3.3
避免科学上网 draco-1.3.3.tar.gz
2、解压
tar -zxvf draco-1.3.3.tar.gz
3、创建新目录,必须创建新的不然会提示你创建新目录
mkdir draco-build-1.3.3
cd draco-build-1.3.3
cmake -D CMAKE_C_COMPILER=/usr/local/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/bin/g++ ../draco-1.3.3
make
make install
将female02.obj上传至自己的目录,我上传到/home/data/ 这个目录做事例
./draco_encoder -i /home/data/female02.obj -o /home/data/femal302.drc
转换成功后见下图,源文件590KB,压缩后23KB
后续准备基于centos7制作docker镜像,有兴趣的可关注我后续blog