【发布时间】:2019-12-27 21:06:08
【问题描述】:
我真正想要的是构建GDal,但这需要PROJ,它需要SQLite3。在构建方面,这些都不是特别用户友好的。 4小时后,我被卡住了。到目前为止我做了什么:
- 下载 PROJ 源代码
- 下载SQLite
sqlite-amalgamation-3290000.zip源码 - 下载
sqlite-dll-win64-x64-3290000.zip.exe和.dll - 在PROJ目录
mkdir build和cd 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 中没有记录这些内容。
【问题讨论】:
-
-DSQLITE3_LIBRARY=D:\sqlite3\bin\sqlite3.dll不应该是.lib文件(可能是导入库)。你没有链接dlls -
@drescherjm 这是一种理论,但是在编译说明中他们将其设置为
sqlite3.so,我认为这是 Linux 上的共享库。反正我不知道去哪里找sqlite3.lib。 -
vcpkg中还有proj4的端口。 github.com/microsoft/vcpkg/tree/master/ports/proj4
-
@drescherjm 非常感谢,我一回家就去看看!