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

  • 下载PROJ源代码
  • 下载SQLite sqlite-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中没有任何记录。

    最佳答案

    我也遇到了-PROJ文档在Windows部分中显示了Linux信息!

    在适当的MSVC控制台中,从带有sqlite3.dll和sqlite3.def的目录运行:

    lib /def:sqlite3.def
    

    生成导入库,并将其作为SQLITE3_LIBRARY定义的cmake。

    关于c++ - 无法在Windows上构建PROJ-sqlite3的链接器错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57611051/

    10-09 06:39