You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7编译GDAL遇sqlite3_column_table_name未定义引用问题求助

解决GDAL 3.2.0编译时sqlite3_column_origin_name/sqlite3_column_table_name未定义引用问题

1. 修复SQLite3编译参数并重新编译

你原CFLAGS参数里存在错误:-SQLITE_ENABLE_COLUMN_METADATA=1多了一个减号,属于无效配置,且重复定义了宏。正确的编译方式是直接用sqlite自带的配置项:

  • 下载SQLite 3.30及以上版本的源码(GDAL 3.2.0对sqlite版本有要求)
  • 解压后进入源码目录,执行:
    ./configure --prefix=/usr/local/sqlite3 --enable-column-metadata
    make -j$(nproc)
    make install
    
    --enable-column-metadata会自动开启SQLITE_ENABLE_COLUMN_METADATA宏,无需手动添加CFLAGS,避免参数错误。

2. 配置环境变量让GDAL优先链接新SQLite

编译GDAL前,必须让系统优先找到新编译的sqlite库和头文件,执行以下命令:

export PKG_CONFIG_PATH=/usr/local/sqlite3/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/usr/local/sqlite3/lib:$LD_LIBRARY_PATH
export CFLAGS="-I/usr/local/sqlite3/include $CFLAGS"
export LDFLAGS="-L/usr/local/sqlite3/lib -lsqlite3 $LDFLAGS"

3. 重新配置并编译GDAL

进入GDAL源码目录,重新执行configure(替换为你的geos、proj实际安装路径):

./configure --prefix=/usr/local/gdal320 --with-geos=/usr/local/geos380/bin/geos-config --with-proj=/usr/local/proj720

配置完成后,检查输出日志,确认以下内容存在:

SQLite support: yes
SQLite library version: 3.xx.x
SQLite enable column metadata: yes

确认无误后,执行编译安装:

make -j$(nproc)
make install

内容的提问来源于stack exchange,提问作者monkey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 12:53:09