QLUA не видит библиотеку.

Страницы: 1
RSS
QLUA не видит библиотеку., QLUA не видит библиотеку dll
 
Хочу подключить вот эту библиотеку для работы с SQLite. Собрал dll файл, все как положено. LuaRocks зарегистрировал его в моем LUA для Windows (не в том что к Квику прилагается). Я взял оттуда lsqlite.dll и скопировал в папку с Квиком и пытаюсь запустить в Квике скрипт:

Код
local sqlite3 = require("lsqlite3")
 
На что получаю ошибку
Цитата


error loading module 'lsqlite3' from file 'C:\QuikKITFinance\lsqlite3.dll':
Не найден указанный модуль.


Что я делаю не так?
 
Небольшая ошибочка в тексте выше - файл конечно же называется lsqlite3.dll.
 
Квик версии 7.
 
Проверил эту библиотеку в LUA для Windows - работает. Так что файл lsqlite3.dll в порядке.

Но почему Квик его не видит?
 
название длл соответствует lsqlite3, как указано в require?
 
Цитата
Валентин пишет:
название длл соответствует lsqlite3, как указано в require?
Стой проблемой справился. Оказывается в папку с Квиком надо было положить msvcr80.dll (компилятор MinGW использовал его при создании lsqlite3). На форумах писали что нужно еще файл манифеста для приложить, но я проверил - особой роли не играет с манифестом или без. Ошибка старая ушла, пришла новая:
Цитата
R6034 Anapplication has made an attempt to load the C runtime library incorrectly.
Цитата
error loading module 'lsqlite3' from file '.\lsqlite3.dll':
Цитата
     Произошел сбой в программе инициализации библиотеки динамической компоновки (DLL).

Я поискал и видимо дело в том, что Квик использует другую версию msvcr, чем ту, которую я приложил. В главной папке Квика действительно лежат msvcrt.dll и msvcrt40.dll. Вот здесь очень похожая темка с такой же ошибкой обсуждается.

И что делать то?
 
Цитата
Валентин пишет:
название длл соответствует lsqlite3, как указано в require?
Т.е. получается проблема в том, что мы компилируем внешние библиотеки под другой (полноценный) LUA, не тот, что стоит в Квике. Естественно полученные в результате библиотеки потом глючат в квике. И это концептуальная проблема.

А можно ли как-то настроить MinGW и LuaRocks на тот квиковский LUA? Я не знаю как.
 
Всё! Заработало!

Решение такое. Перед созданием библиотеки lsqlite3 через LuaRocks, нужно изменить конфигурационный файл LuaRocks. У меня этот файл лежит в корневой папке \LuaRocks и называется config-5.1.lua. У вас он может называться по-другому. Находим в нем раздел Variables и УБИРАЕМ НАХРЕН строку:

Код
MSVCRT = 'MSVCR80'
 
Собираем заново через LuaRocks библиотеку lsqlite3. Бросаем lsqlite3.dll в корневую Квика и радуемся т.к. все работает.

Аж прослезился!
Страницы: 1
Читают тему (гостей: 1)
Наверх