前言
踩过深坑,走过断桥。
一、代码准备
下载OSG、OSGEarth源码以及所需的第三方依赖库。
中标麒麟编译顺序:
autoconf-latest.tar.gz
automake-1.16.tar.gz
CMake-3.16.4.tar(版本可自选)
jpegsrc.v8.tar.gz
libpng-1.6.37.tar.xz
tiff-4.0.8.zip
giflib-5.2.1.tar.gz
proj-4.9.3.tar.gz
geos-3.5.2.tar.bz2
minizip-master.zip
sqlite-autoconf-3320300.tar.gz
SDL2-2.0.12.tar.gz
libtool-2.4.5.tar.gz
googletest-release-1.5.0.zip
protobuf-2.6.1-artifacts.zip
gdal221.zip
QT5.9.6
OpenSceneGraph-OpenSceneGraph-3.4.0.zip
osgearth-2.8.zip
银河麒麟编译顺序:
autoconf-latest.tar.gz
automake-1.16.tar.gz
CMake-3.16.4.tar(版本可自选)
openssl-1.1.1g.tar.gz
curl-7.60.0.tar.gz
jpegsrc.v8.tar.gz
libpng-1.6.37.tar.xz
tiff-4.0.8.zip
giflib-5.2.1.tar.gz
proj-4.9.3.tar.gz
geos-3.5.2.tar.bz2
minizip-master.zip
sqlite-autoconf-3320300.tar.gz
SDL2-2.0.12.tar.gz
libtool-2.4.5.tar.gz
googletest-release-1.5.0.zip
protobuf-2.6.1-artifacts.zip
gdal221.zip
QT5.9.6
OpenSceneGraph-OpenSceneGraph-3.4.0.zip
osgearth-2.8.zip
二、代码编译
解压缩源代码,进入源代码文件,编译方法:
(1)./configure 或 ./config配置命令生成Makefile文件,如果源码文件存在CmakeList.txt文件,则cmake生成Makefile文件,如果源码文件中存在Makefile文件,可以跳过第一步;
(2)make命令进行代码编译,make -j number(cpu核数)加快编译速度;
(3)sudo make install生成引用库。
注意事项
(1)中标麒麟自带Cmake版本较低,功能陈旧,卸载中标麒麟自带Cmake,终端输入sudo yum autoremove cmake -y卸载。
(2)sqlite-autoconf编译之前,在源码sqlite.c中加入宏代码:
#define SQLITE_ENABLE_COLUMN_METADATA 1
这个设置在后续编译GDAL时候才不会出现这个错误libgdal.so: undefined reference to `sqlite3_column_origin_name’;
(3)protobuf编译之前,解压googletest-release-1.5.0.zip文件后,重命名为gtest,放入protobuf源码文件中,执行中autogen.sh脚本,方能成功编译;
(4)编译OSG之前,OSG应用GDAL库,需要把GDAL的头文件放入/usr/local/include文件夹中;
(5)OSG编译时候,在Cmakelist.txt文件中第707行加入Qt版本和Qt5Widgets的路径,即:
SET(DESIRED_QT_VERSION 5)
SET(Qt5Widgets_DIR Qt5Widgets的安装路径(eg:/home/…/Qt5.9.6/5.9.6/gcc_64/lib/cmake/Qt5Widgets));
(6)OSGEarth编译时候,在CmakeList.txt文件中注释掉160行至165行中关于Qt4的配置代码;
(7)编译过程中,每编译完成一个第三方依赖库,使用sudo ldconfig更新引用文件。
总结
快乐的秃头程序码农。