无法使用 sqlite3 在链接器错误上生成 PROJ

Cannot build PROJ on linker error with sqlite3

本文关键字:错误 PROJ 链接 sqlite3      更新时间:2023-10-16

我真正想要的是构建GDal,但这需要PROJ,而PROJ需要SQLite3。在构建方面,这些都不是特别用户友好。4个小时后,我被卡住了。到目前为止我做了什么:

  • 下载项目源代码
  • 下载SQLitesqlite-amalgamation-3290000.zip源代码
  • 下载sqlite-dll-win64-x64-3290000.zip.exe和.dll
  • 在 PROJ 目录中mkdir buildcd build
  • 使用预设的 SQLite 路径运行 CMAKE:

    cmake -DSQLITE3_INCLUDE_DIR=D:sqlite3src -DSQLITE3_LIBRARY=D:sqlite3binsqlite3.dll ..
    
  • 然后运行构建:cmake --build .
  • 编译成功,但链接失败

错误:

Building Custom Rule D:/proj-6.1.1/test/unit/CMakeLists.txt
main.cpp
proj_errno_string_test.cpp
Generating Code...
D:sqlite3binsqlite3.dll : fatal error LNK1107: invalid or corrupt file: cannot read at 0x360 [
D:proj-6.1.1buildtestunitproj_errno_string_test.vcxproj]

我不知道问题出在哪里。也许.dll不兼容?也许应该是.lib?这些都没有记录在 PROJ 中。

我也遇到了这个问题 - PROJ文档在Windows部分显示Linux信息!

从相应的 MSVC 控制台中带有 sqlite3.dll 和 sqlite3.def 的目录运行:

lib /def:sqlite3.def

生成导入库并将其提供给 cmake 作为SQLITE3_LIBRARY定义。