使用MinGW-w64与MSYS编译PROJ6时--with-sqlite3参数无效求助
解决PROJ6编译时--with-sqlite3参数无效的问题
以下是针对Windows10 + MinGW-w64 + MSYS环境的排查和解决步骤:
确认参数格式与路径正确性
确保--with-sqlite3指向的是sqlite3的安装前缀目录(即包含include和lib子目录的父目录),且MSYS路径格式正确(比如Windows的D:\xxx对应MSYS的/d/xxx)。同时检查该目录下:/d/xxx/include存在sqlite3.h头文件/d/xxx/lib存在libsqlite3.a(静态库)或libsqlite3.dll.a(动态库导入文件)
确保sqlite3用MinGW-w64编译
如果sqlite3是用VC等其他工具链编译的,库格式不兼容会导致PROJ的configure无法识别。重新用MinGW-w64编译sqlite3:# 下载sqlite3源码并解压后进入目录 ./configure --prefix=/d/xxx --disable-shared # 编译静态库,或用--enable-shared编译动态库 make && make install设置PKG_CONFIG_PATH环境变量
PROJ可能通过pkg-config查找sqlite3,若sqlite3的sqlite3.pc文件在/d/xxx/lib/pkgconfig下,先执行:export PKG_CONFIG_PATH=/d/xxx/lib/pkgconfig:$PKG_CONFIG_PATH再重新运行PROJ的configure命令。
直接指定CFLAGS与LDFLAGS
若--with-sqlite3参数仍无效,可绕过该参数,直接告诉编译器sqlite3的位置:./configure --prefix=/d/xxx/ CFLAGS="-I/d/xxx/include" LDFLAGS="-L/d/xxx/lib -lsqlite3"验证configure支持的sqlite参数
运行以下命令查看PROJ6的configure脚本支持的sqlite相关参数,确认是否参数名有误:./configure --help | grep -i sqlite
内容的提问来源于stack exchange,提问作者ilnaug
相关产品推荐
相关产品推荐

