proj官网地址:Download — PROJ 9.1.0 documentation
前置条件
依赖较高版本的sqlite3 >= 3.11
yum install -y libtiff libtiff-devel.x86_64
yum install -y libcurl-devel.x86_64
yum install -y gcc gcc-c++
yum install -y libsqlite3x-devel
1、安装sqlite
wget https://sqlite.org/2022/sqlite-autoconf-3400000.tar.gz
tar -zxvf sqlite-autoconf-3400000.tar.gz
cd sqlite-autoconf-3400000
修改源代码
注:这里最好修改下源代码,不然后续报错后,整个流程还需要重新跑。
编译postgis/gdal可能出现的错误:
undefined reference to `sqlite3_column_origin_name'
对sqlite文件头部追加一行
开启空间扩展
sed -i '25 i #define SQLITE_ENABLE_COLUMN_METADATA 1' sqlite3.c
./configure --prefix=/usr/local/sqlite3400000 --enable-rtree=yes
make -j4 && make install
2、sqlite环境变量
#重命名
mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
#建立一个link
ln -s /usr/local/sqlite3400000/bin/sqlite3 /usr/bin/sqlite3
#查看版本是否最新
sqlite3 -version
#设置pkg_config,给proj使用
vi /etc/profile
export SQLITE_HOME=/usr/local/sqlite3400000
export PATH=$SQLITE_HOME/bin:$PATH
export PKG_CONFIG_PATH=$SQLITE_HOME/lib/pkgconfig:$PKG_CONFIG_PATH
source /etc/profile
3、安装proj-8.2.1
wget https://download.osgeo.org/proj/proj-8.2.1.tar.gz
tar -xvf proj-8.2.1.tar.gz
cd proj-8.2.1
./configure --prefix=/usr/local/proj-8.2.1
make -j12 && make install
#cmake编译后生成lib64(非lib)文件夹,GDAL调用会去找lib,所以用configure
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/proj-8.2.1 ..
make -j12 && make install
注意:#cmake编译后生成lib64文件夹,但是GDAL会去找lib,所以用configure方式编
因为都是开源项目,可能未来会修复这个问题
4、PROJ环境变量
vi /etc/profile
#proj
export PROJ_HOME=/usr/local/proj-8.2.1
export PKG_CONFIG_PATH=$PROJ_HOME/lib/pkgconfig:$PKG_CONFIG_PATH
source /etc/profile