воскресенье, 4 мая 2014 г.

Quik 6.12.4.11 и LUA5.1. Ошибки при использовании библиотек.

script

Сегодня, при написании скрипта для QUIK , попытался использовать библиотеку iuplua. Но не тут то было.






Код:
require "iuplua"
Вызывал ошибку:
module 'iuplua' not found:
no field package.preload['iuplua']
no file '.\iuplua.lua'
no file 'D:\work\psbquik\lua\iuplua.lua'
no file 'D:\work\psbquik\lua\iuplua\init.lua'
no file 'D:\work\psbquik\iuplua.lua'
no file 'D:\work\psbquik\iuplua1\init.lua'
no file 'C:\Program Files (x86)\Lua\5.1\lua\iuplua.luac'
no file '.\iuplua.dll'
no file 'D:\work\psbquik\iuplua.dll'
no file 'D:\work\psbquik\loadall.dll'
no file '.\iuplua.dll'
no file '.\iuplua.so'
no file '..\lib\iuplua.so'
no file '..\lib\vc_dll\iuplua.dll'
no file '..\lib\bcc_dll\iuplua.dll'
no file '..\lib\mingw_dll\iuplua.dll'
Пошарив в папке  'C:\Program Files (x86)\Lua\5.1\clibs\', я обнаружил что есть библиотека iuplua51.dll, а компилятор ищет iuplua.dll. Возможно в какой то из версий все работало отлично. Но в моем случае нет. Что делать? Есть 2 варианта.
1. Можно перед строчкой:
require "iuplua"
Прописать:
package.cpath = package.cpath..";C:/Program Files (x86)/Lua/5.1/clibs/?51.dll;./?.dll;./?.so;../lib/?.so;../lib/vc_dll/?.dll;../lib/bcc_dll/?.dll;../lib/mingw_dll/?.dll;"
Тем самым мы добавим к уже существующему пути поиска библиотек несколько нужных нам путей. Вариант хорош, но эту строчку необходимо добавлять в каждый скрипт, который мы будем писать. Это не наш метод.
2. В переменную окружения LUA_CPATH добавить указанные выше пути. Добраться до настроек переменных окружения можно по следующему пути "Панель управления\Все элементы панели управления\Система\Дополнительные параметры системы\Дополнительно\Переменные среды". В моем случае оказалось что переменной LUA_CPATH просто нет. Понятно почему не работают мои скрипты. :) Нажимаю кнопку "Создать", пишу имя переменной, в поле "Значение переменной" вставляю строчку:
;;C:\Program Files (x86)\Lua\5.1\clibs\?51.dll;.\?.dll;.\?.so;..\lib\?.so;..\lib\vc_dll\?.dll;..\lib\bcc_dll\?.dll;..\lib\mingw_dll\?.dll;
Перезапускаю копьютер.
Все работает.
Все становится просто, если ко всем проще относиться.

Комментариев нет:

Отправить комментарий