我有一個在 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 編譯?
uj5u.com熱心網友回復:
你大錯特錯了。聯結器標志的-lsqlite3意思是“與 鏈接libsqlite3.so。要編譯的正確庫是SQLite3。如果您在 Windows 上編譯它時遇到問題,那么在 SO 上有很多關于它的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/341403.html
