используя sqlite3 с lua - PullRequest
0 голосов
/ 18 мая 2010

Я пытаюсь использовать sqlite3 с lua (я уже использую c ++, но я n00b с lua - я читаю this ), но при попытке собрать библиотеку я получаю следующее или что угодно:

C:\lib\lsqlite3-7>mingw32-make
process_begin: CreateProcess(NULL, pkg-config --version, ...) failed.
makefile:53: *** windows32.  Stop.

Меня нисколько не удивляет сбой make-файла, но я не могу их сделать (это пробелы или табуляции? Куда они должны идти?), Я бы подумал, что для окон есть бинарный файл?

Любые простые ответы приветствуются. У меня нет времени учиться делать или устанавливать Cygwin или что-то еще.

1 Ответ

1 голос
/ 19 мая 2010

Вместо этого вы можете рассмотреть возможность использования LuaSQL в качестве оболочки, поскольку он уже включен в пакет Lua для Windows и, вероятно, уже есть в вашей системе. Он включает поддержку SQLite3 среди других баз данных.

Похоже, что вы пытаетесь собрать последний выпуск lsqlite3, но этот выпуск не был упакован так, чтобы его можно было легко собирать для Windows или для Windows. Я не пытался отследить двоичный файл, поскольку LuaForge имеет только исходный пакет. Похоже, что для его успешной сборки потребуется вручную отредактировать Makefile, а затем запустить Makefile под MSYS или Cygwin, так что утилиты * nix, которые, как предполагается, существуют, доступны для него.

Обновление: июнь 2012

С момента написания этого ответа у меня была возможность подумать о том, чтобы использовать lsqlite3 для себя, для проекта, который не потребует гибкости привязки ко многим различным поставщикам баз данных, поэтому создание тесной зависимости от SQLite имеет смысл. Учитывая это, оболочка lsqlite3 хорошо подходит из-за ее небольшого размера и чистой реализации множества важных элементов API SQLite C.

Для его построения я использовал MSYS , который предоставляет минимальную Unix-подобную командную строку и вспомогательные утилиты для использования с портом MinGW GCC. В этой среде мне пришлось внести небольшую модификацию в Makefile, чтобы заставить его использовать ручную настройку, и предоставить детали конфигурации, определяющие, где lua.h, lua51.dll, sqlite3.h и sqlite3.dll скрывались на моем система.

Единственный реальный трюк - правильно сопоставить пути Windows с именами MSYS, изменив C: на /c/ и избегая использования имен папок с пробелами в них. Так что с Lua для Windows на C:\Program Files (x86)\Lua\5.1, который отображается на /c/PROGRA~2/Lua/5.1, используя короткое имя Windows 8.3, чтобы избежать пробелов.

Ключевым моментом, по которому MSYS рекомендуется использовать в других Unix-подобных средах сборки в Windows, является то, что он специально предназначен для этой цели. Программы и библиотеки, созданные на его основе, не содержат никаких неожиданных зависимостей. В частности, это не похоже на Cygwin, который призван обеспечить полный Unix-подобный интерфейс, работающий поверх Windows.

С недавно созданной lsqlite3.dll все, что мне нужно было сделать, это установить ее где-нибудь на моем Lua package.cpath вместе с sqlite3.dll, и все примеры и тестовые примеры, похоже, работают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...