提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
1.编译Ubuntu本机使用的GDAL库
注意:–without表示不编译这些功能,如果需要可自行修改;
–prefix表示编译安装的目录,可自行修改;
–enable-static表示生成静态库,自己不用的话可去掉;
–with-pic表示在编译时增加“-fPIC”参数,自己不用的话可去掉。
创建编译脚本,build_linux.sh,写入如下命令:
make clean
./configure CFLAGS="-fPIC" CXXFLAGS="-fPIC" --enable-static --prefix=/home/xx/gdal-2.2.4_ubuntu/gdal_linux --with-pic --without-gif --with-threads --with-ogr --with-geos --with-libz=internal --without-bsb --without-cfitsio --without-cryptopp --without-curl --without-dwgdirect --without-ecw --without-expat --without-fme --without-freexl --without-gif --without-gif --without-gnm --without-grass --without-grib --without-hdf4 --without-hdf5 --without-idb --without-ingres --without-jasper --without-jp2mrsid --without-jpeg --without-kakadu --without-libgrass --without-libkml --without-libtool --without-mrf --without-mrsid --without-mysql --without-netcdf --without-odbc --without-ogdi --without-openjpeg --without-pcidsk --without-pcraster --without-pcre --without-perl --without-pg --without-php --without-png --without-python --without-qhull --without-sde --without-sqlite3 --without-webp --without-xerces
make -j8
make install
打开终端,运行脚本,输入如下命令:
bash ./build_linux.sh
2.编译Android使用的GDAL库
本文用的是NDK22版本进行交叉编译,此命令编译的是armv7版本的库,如果需要编译armv8或者其他架构的库,可自行修改路径。
注意:–without表示不编译这些功能,如果需要可自行修改;
–prefix表示编译安装的目录,可自行修改;
–enable-static表示生成静态库,自己不用的话可去掉;
–with-pic表示在编译时增加“-fPIC”参数,自己不用的话可去掉。
创建编译脚本,build_Android.sh,写入如下命令:
export HOST_TAG=linux-x86_64
export TOOLCHAIN=/home/xx/ToolChains/android-ndk-r22b/toolchains/llvm/prebuilt/$HOST_TAG
export AR=/home/xx/ToolChains/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ar
export AS=/home/xx/ToolChains/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-as
export RANLIB=$TOOLCHAIN/bin/arm-linux-androideabi-ranlib
export CC=/home/xx/ToolChains/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang
export CXX=/home/xx/ToolChains/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi21-clang++
export LD=/home/xx/ToolChains/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-ld
export STRIP=/home/xx/ToolChains/android-ndk-r22b/toolchains/llvm/prebuilt/linux-x86_64/bin/arm-linux-androideabi-strip
make clean
./configure --host=arm-linux-androideabi --prefix=/home/xx/gdal-2.2.4_1/gdal_android --with-pic --without-gif --with-threads --with-ogr --with-geos --with-libz=internal --without-bsb --without-cfitsio --without-cryptopp --without-curl --without-dwgdirect --without-ecw --without-expat --without-fme --without-freexl --without-gif --without-gif --without-gnm --without-grass --without-grib --without-hdf4 --without-hdf5 --without-idb --without-ingres --without-jasper --without-jp2mrsid --without-jpeg --without-kakadu --without-libgrass --without-libkml --without-libtool --without-mrf --without-mrsid --without-mysql --without-netcdf --without-odbc --without-ogdi --without-openjpeg --without-pcidsk --without-pcraster --without-pcre --without-perl --without-pg --without-php --without-png --without-python --without-qhull --without-sde --without-sqlite3 --without-webp --without-xerces
make -j8
make install
打开终端,运行脚本,输入如下命令:
bash ./build_Android.sh