我如何为 Windows 编译 lsqlite3?

How can I compile lsqlite3 for Windows?

我在 Ubuntu Linux 中开发了一个 C++ 项目。这个 C++ 项目不是我写的。此外,它在 Ubuntu 下运行没有任何问题。

我正在尝试使用 GCC/G++ 编译器和 Visual Studio 2019 IDE 在 Windows 10 下编译项目。我离成功很近了。

此项目在其 CMakeList.txt 文件中包含以下行:

find_package(sqlite3)
if (SQLITE3_FOUND)
  message("Sqlite3 found")
  include_directories(${SQLite3_INCLUDE_DIRS})
  SET(CMAKE_CXX_FLAGS_RELEASE " -DSQLITE3 ${CMAKE_CXX_FLAGS_RELEASE}")
  SET(CMAKE_CXX_FLAGS_DEBUG " -DSQLITE3 ${CMAKE_CXX_FLAGS_DEBUG}")
  SET(CMAKE_EXE_LINKER_FLAGS "-lsqlite3")
  SET(CMAKE_SHARED_LINKER_FLAGS "-lsqlite3")
else()
  message("Sqlite3 not found")
endif (SQLITE3_FOUND)

我需要 lsqlite3。我找到 the source code 但无法使用 GCC 编译它:

C:\Users\pc\Downloads\sqlite3\lsqlite3-master\lsqlite3-master>mingw32-make
FIND: Parameter format not correct
FIND: Parameter format not correct
luarocks make

Error: Please specify which rockspec file to use.
luarocks make

Error: Please specify which rockspec file to use.

C:\Users\pc\Downloads\sqlite3\lsqlite3-master\lsqlite3-master>mingw32-make lsqlite3complete-0.9.4-2.rockspec
mingw32-make: Nothing to be done for 'lsqlite3complete-0.9.4-2.rockspec'.

C:\Users\pc\Downloads\sqlite3\lsqlite3-master\lsqlite3-master>

文件 lsqlite3.c 包含 #include "lua.h"#include "lauxlib.h"。他们似乎来自 Lua for Windows 项目。

我如何为 Windows 和 link 编译 lsqlite3 到我现有的 CPP 项目的端口?

应该用GCC编译还是Lua?

你大错特错了。 linker 标志 -lsqlite3 表示“link 和 libsqlite3.so。要编译的正确库是 SQLite3。如果在 [=15= 上编译时遇到问题], SO上关于它的问题比较多