2016-11-23 5 views
3

Я хотел бы, чтобы отлаживать с помощью ZeroBraneStudio 1,4 с моим собственным переводчиком Lua (5.1) на Windows 7.отладки с использованием ZeroBraneStudio с собственным переводчиком Lua

я установил интерпретатор в user.lua, как

path.lua = '<PATH_OWN_INTERPRETER>' 

my_app.lua имеет следующие значения в качестве первой линии

package.path = package.path .. ';../CommonScripts/?.lua' 
print(package.path) 

который печатает

;.\?.lua;<PATH_OWN_INTERPRETER>\lua\?.lua;<PATH_OWN_INTERPRETER>\lua\?\init.lua;<PATH_OWN_INTERPRETER>\?.lua;<PATH_OWN_INTERPRETER>\?\init.lua;./?.lua;./?/init.lua;./lua/?.lua;./lua/?/init.lua;<PATH_ZBS>\lualibs/?/?.lua;<PATH_ZBS>\lualibs/?.lua;<PATH_ZBS>\lualibs/?/?/init.lua;<PATH_ZBS>\lualibs/?/init.lua;../CommonScripts/?.lua 

При запуске отладки возникает следующая ошибка.

<PATH_ZBS>\lualibs/ssl.lua:19: module 'ssl.x509' not found: 
    no field package.preload['ssl.x509'] 
    no file '.\ssl\x509.lua' 
    no file '<PATH_OWN_INTERPRETER>\lua\ssl\x509.lua' 
    no file '<PATH_OWN_INTERPRETER>\lua\ssl\x509\init.lua' 
    no file '<PATH_OWN_INTERPRETER>\ssl\x509.lua' 
    no file '<PATH_OWN_INTERPRETER>\ssl\x509\init.lua' 
    no file './ssl\x509.lua' 
    no file './ssl\x509/init.lua' 
    no file './lua/ssl\x509.lua' 
    no file './lua/ssl\x509/init.lua' 
    no file '<PATH_ZBS>\lualibs/ssl\x509/ssl\x509.lua' 
    no file '<PATH_ZBS>\lualibs/ssl\x509.lua' 
    no file '<PATH_ZBS>\lualibs/ssl\x509/ssl\x509/init.lua' 
    no file '<PATH_ZBS>\lualibs/ssl\x509/init.lua' 
    no file '../CommonScripts/ssl\x509.lua' 
    no file '.\ssl\x509.dll' 
    no file '.\ssl\x50951.dll' 
    no file '<PATH_OWN_INTERPRETER>\ssl\x509.dll' 
    no file '<PATH_OWN_INTERPRETER>\ssl\x50951.dll' 
    no file '<PATH_OWN_INTERPRETER>\clibs\ssl\x509.dll' 
    no file '<PATH_OWN_INTERPRETER>\clibs\ssl\x50951.dll' 
    no file '<PATH_OWN_INTERPRETER>\loadall.dll' 
    no file '<PATH_OWN_INTERPRETER>\clibs\loadall.dll' 
    no file '<PATH_ZBS>\bin/ssl\x509.dll' 
    no file '<PATH_ZBS>\bin/clibs/ssl\x509.dll' 
    no module 'ssl.x509' in file '<PATH_OWN_INTERPRETER>\ssl.dll' 
stack traceback: 
    [C]: in function 'require' 
    <PATH_ZBS>\lualibs/ssl.lua:19: in main chunk 
    [C]: in function 'require' 
    <PATH_OWN_INTERPRETER>\ssl\https.lua:10: in main chunk 
    [C]: in function 'require' 
    ../CommonScripts/Class2.lua:36: in main chunk 
    [C]: in function 'require' 
    ../CommonScripts/Class1.lua:40: in main chunk 
    [C]: in function 'require' 
    my_app.lua:48: in main chunk 

У меня есть следующие строки в Class2.lua:36

local https = require'ssl.https' 

Кажется, что ZBS перемешивает до директории встроенного интерпретатора Lua с тем, что я хотел бы использовать.

Как я могу предотвратить это?

+0

Возможно, это потому, что у вас нет ' \ ssl.lua', поэтому он был найден в пути' ZBS' –

ответ

0

По-видимому, когда путь Lua в user.lua устанавливается как

path.lua = '<PATH_OWN_INTERPRETER>' 

Он расширяется ZeroBrane студии для

<PATH_OWN_INTERPRETER>\lua\?.lua; 
<PATH_OWN_INTERPRETER>\lua\?\init.lua; 
<PATH_OWN_INTERPRETER>\?.lua; 
<PATH_OWN_INTERPRETER>\?\init.lua; 

В моем собственном интерпретатором, SSL находится в <PATH_OWN_INTERPRETER>\lua\ssl\ssl.lua с не входит в список выше.

Итак, мое решение было определить LUA_PATH как переменные окружения, так что я получаю

<PATH_OWN_INTERPRETER>/?.lua; 
<PATH_OWN_INTERPRETER>/lua/?.lua; 
<PATH_OWN_INTERPRETER>/lua/?/?.lua; 

в пути.

0

@EgorSkriptunoff правильно в своем комментарии: У вас есть <PATH_OWN_INTERPRETER>\ssl.dll, который, кажется, не имеет ssl.x509 модуль (no module 'ssl.x509' in file '<PATH_OWN_INTERPRETER>\ssl.dll') и не имеет <PATH_OWN_INTERPRETER>\ssl.lua, поэтому версию Lua модуля загружается из ZeroBrane студии папки, но двоичная часть модуля загружается из ваших папок Lua и отсутствует (по какой-либо причине компонент x509). Вам нужно использовать оба (Lua и двоичные) компоненты из того же источника.