2015-12-16 6 views
-1

Мне нужно построить lua-redis. Lua-dedis зависит от luasockets. Luasockets 2.0 не удалось построить: my question on sockets 2.0 and lua 5.3 Мне предлагалось использовать luasockets 3.0. Я делаю их, но они устанавливаются в Lua 5.1, Lua 5.3 до сих пор не видит эту библиотеку:Как создать luasockets 3.0 для lua 5.3

[email protected]:/home/debian/luasocket-master# make install 
make -C src install 
make[1]: Entering directory `/home/debian/luasocket-master/src' 
install -d /usr/local/share/lua/5.1 
install -m644 ltn12.lua socket.lua mime.lua /usr/local/share/lua/5.1 
install -d /usr/local/share/lua/5.1/socket 
install -m644 http.lua url.lua tp.lua ftp.lua headers.lua smtp.lua /usr/local/share/lua/5.1/socket 
install -d /usr/local/lib/lua/5.1/socket 
install socket-3.0-rc1.so /usr/local/lib/lua/5.1/socket/core.so 
install -d /usr/local/lib/lua/5.1/mime 
install mime-1.0.3.so /usr/local/lib/lua/5.1/mime/core.so 
make[1]: Leaving directory `/home/debian/luasocket-master/src' 
[email protected]:/home/debian/luasocket-master# lua 
Lua 5.3.2 Copyright (C) 1994-2015 Lua.org, PUC-Rio 
> require('socket') 
stdin:1: module 'socket' not found: 
    no field package.preload['socket'] 
    no file '/usr/local/share/lua/5.3/socket.lua' 
    no file '/usr/local/share/lua/5.3/socket/init.lua' 

Как я могу изменить целевой Lua версии?

Это не дубликат моего вопроса относительно сокетов 2.0, потому что это разная кодовая база и другая проблема. Sockets 2.0 не удается скомпилировать, а сокеты 3.0 не могут быть установлены.

+1

Возможный дубликат [Как построить luasockets для Lua 5.3] (http://stackoverflow.com/questions/34308217/how-to-build-luasockets-for-lua-5-3) – Kamiccolo

+0

Устранение неполадок системы сборки C для какого-либо случайного проекта обычно не входит в тему в stackoverflow. Вы пытались сообщить об ошибке с сопровождающими? Или просмотрите их инструкции по установке? Взглянув на репозиторий, у них есть файл rockpec, поэтому его можно установить с помощью luarocks. –

+0

Вы посмотрели файл makefile? Кажется «очистить все установки LUAV = 5.3» или что-то в этом направлении должно работать. – nobody

ответ

1

Взгляд на the Makefile показывает следующее:

install-both: 
    $(MAKE) clean 
    @cd src; $(MAKE) $(PLAT) LUAV=5.1 
    @cd src; $(MAKE) install LUAV=5.1 
    $(MAKE) clean 
    @cd src; $(MAKE) $(PLAT) LUAV=5.2 
    @cd src; $(MAKE) install LUAV=5.2 
    $(MAKE) clean 
    @cd src; $(MAKE) $(PLAT) LUAV=5.3 
    @cd src; $(MAKE) install LUAV=5.3 

src/Makefile использует переменную LUAV для выбора включают файлы/установки пути/....

Это означает, что вы можете назвать это непосредственно для версии вы заинтересованы в (и объединить все make вызовы в один):

make clean all install LUAV=5.3