如何在 Windows 上编译 lsqlite3?

我有一个在 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。我找到了 源代码,但是使用 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 上编译 lsqlite3 并将它链接到我的现有 CPP 项目的端口?

它应该使用 GCC 还是 Lua 编译?

原文链接 https://stackoverflow.com/questions/69764971

点赞
stackoverflow用户1548468
stackoverflow用户1548468

你完全错误了。连接器标记-lsqlite3意味着“连接libsqlite3.so库”。正确的库是SQLite3。如果你在Windows上编译它遇到问题,Stack Overflow 上有很多相关的问题。

2021-10-29 13:40:29