【问题标题】:Cannot build PROJ on windows - linker error with sqlite3无法在 Windows 上构建 PROJ - sqlite3 的链接器错误
【发布时间】:2019-12-27 21:06:08
【问题描述】:

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

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

    cmake -DSQLITE3_INCLUDE_DIR=D:\sqlite3\src -DSQLITE3_LIBRARY=D:\sqlite3\bin\sqlite3.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:\sqlite3\bin\sqlite3.dll : fatal error LNK1107: invalid or corrupt file: cannot read at 0x360 [
D:\proj-6.1.1\build\test\unit\proj_errno_string_test.vcxproj]

我不知道问题是什么。也许.dll 不兼容?也许应该是.lib? PROJ 中没有记录这些内容。

【问题讨论】:

标签: c++ windows sqlite proj


【解决方案1】:

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

在相应的 MSVC 控制台中从包含 sqlite3.dll 和 sqlite3.def 的目录运行:

lib /def:sqlite3.def

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

【讨论】:

  • 这让 PROJ 为我构建。必须使用lib /MACHINE:x64 /def:sqlite3.def
猜你喜欢
  • 2014-07-03
  • 2022-08-19
  • 2021-02-23
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多