【问题标题】:How can I compile lsqlite3 for Windows?如何为 Windows 编译 lsqlite3?
【发布时间】:2023-04-06 01:27:01
【问题描述】:

我有一个在 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 编译 lsqlite3 并将其链接到我现有的 CPP 项目的端口?

应该用 GCC 还是 Lua 编译?

【问题讨论】:

  • "这告诉我,我需要 lsqlite3" - 嗯?对我来说,“multiple definition”错误除了缺少库之外什么都没有。例如。 ../bin/libMyLinuxBasedCppProject.a(DataTable.cc.obj):C:\Users\pc\source\repos\MyLinuxBasedCppProject\out\build\Mingw64-Debug/../../../src/utils/string_utils.hh:139: first defined here 行告诉我您在 header定义一个(非内联)函数,这是不受欢迎的:stackoverflow.com/questions/583255/…
  • FIND: Parameter format not correct 可能意味着makefile 是为Linux 编写的并且使用find 命令。 Windows 和 Linux 上find 之间的参数不同。所以,我认为您使用的 makefile 不是针对 Win32。

标签: c++ sqlite cmake lua


【解决方案1】:

你大错特错了。链接器标志-lsqlite3 的意思是“与libsqlite3.so 链接。要编译的正确库是SQLite3。如果您在Windows 上编译时遇到问题,那么在SO 上有很多关于它的问题。

【讨论】:

猜你喜欢
  • 2014-10-13
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 2012-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多