LuaRocks действительно изменчив, когда дело доходит до использования ваших собственных имен исполняемых файлов И вашего компилятора CC. Некоторые зависимости, такие как cmake, должны работать, когда LuaRocks загружает исходные тексты C и C ++ для компиляции в разделяемые библиотеки, например, LuaSocket создаст файл core.so
, который потребует выполнения функции luaopen_libluasocket(lua_State* L);
, которая находится в файле .so.
Для того, чтобы я мог использовать LuaRocks с LuaConsole (мое заменяющее CLI-приложение для lua.c и скоро будет luac.c), мне пришлось изменить фактические файлы после установки. Вот ссылка: https://github.com/tilkinsc/LuaConsole/wiki/LuaRocks-Support-Linux-GCC
По сути, суть в следующем: LuaRocks по умолчанию использует вариант использования для разработчиков, а не обычный gi-joe. Так что продолжайте и запустите ваш ./configure
, который я не уверен, поддерживает ли он --prefix=XXX
Но тогда вам нужно отредактировать файл site_config_x_x.lua
для добавления в site_config.LUA_INTERPRETER=[[luaw]] -- name of lua interpreter
вместе с переключением фактического вызова к интерпретатору внутри оболочки luarocks скрипт. Эту конкретную часть лучше объяснить здесь: https://github.com/tilkinsc/LuaConsole/wiki/LuaRocks-Support-Windows-MinGW Где я буквально сделал это "luaw" "C:\Program Files (x86)\LuaRocks\luarocks.lua" "-n" %*
вместо того, что они делали ... и% * это все аргументы, то есть передача всех аргументов.
Затем, после того, как все это сказано и сделано, вам нужно установить LUA_CPATH и LUA_PATH для поиска ваших файлов. Он изменяется в зависимости от установки, но команда для его обнаружения - luarocks path --bin
, которая выводит его. Вы можете добавить его в LUA_INIT env var, если хотите, но я нахожусь в Windows и динамически устанавливаю свою собственную переменную пути, используя это: https://gist.github.com/tilkinsc/f6718ca61d76085b064c3dca02f96017 В качестве альтернативы, вы можете установить package.path и package.cpath самостоятельно. но я не рекомендую.
LuaRocks великолепен, когда вы заставите его работать: D