Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Технические вопросы по RusHub'у _ freebsd 8.2 & RusHub

Автор: gor1k 24.8.2011, 16:23

Есть система

Код
[root@ns3 /]# uname -a
FreeBSD ns3.nkstv.net 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Feb 18 02:24:46 UTC 2011     root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386

и собственно RusHub c
Код
[root@ns3 /]# pkg_info | grep lua
lua-5.1.4_6         Small, compilable scripting language providing easy access
lua51-luasocket-2.0.2_1 IPv4 Sockets support for the Lua language
luasql-sqlite3-2.1.1_1 Lua interface to SQLite3

вот скрипты
Код
17:18:49] <RusHubBot> *** Скрипты:

    № 01 [ вкл ]     FirstRusHubBot.lua (145 Кб)
    № 02 [ вкл ]     announcements.lua (38 Кб)
    № 03 [ вкл ]     Informer.lua (25 Кб)
    № 04 [ вкл ]     EasyChat.lua (36 Кб)
    № 05 [ вкл ]     BanManager.lua (58 Кб)
    № 06 [ вкл ]     talkingbot_for_RusHub.lua (31 Кб)
    № 07 [ вкл ]     Ban.lua (31 Кб)
    № 08 [ выкл ]     logger.lua
    № 09 [ вкл ]     chathist.lua (62 Кб)
    № 10 [ вкл ]     actions.lua (179 Кб)
    № 11 [ выкл ]     Weather.lua

*** Общее использование памяти скриптами: 605 Кб


Weather.lua & logger.lua на работают. ковырял ковырял, так и не понял что с этим делать.
в логах вот такая ошибка
Код
more logs/lua_errors.log
[Thu Jan  1 03:00:00 1970] error loading module 'luasql.sqlite3' from file '/usr/local/lib/lua/5.1/luasql/sqlite3.so':
        /usr/local/lib/lua/5.1/luasql/sqlite3.so: Undefined symbol "lua_touserdata"
[Thu Jan  1 03:00:00 1970] error loading module 'socket.core' from file '/usr/local/lib/lua/5.1/socket/core.so':
        /usr/local/lib/lua/5.1/socket/core.so: Undefined symbol "lua_insert"


подскажите что не так сделал и как жить дальше.

Автор: mariner 24.8.2011, 16:28

Проблема в линковке. Русхаб проверенно работает только в случае динамической линковки луа. Пересоберите луа.

Автор: gor1k 24.8.2011, 17:28

Цитата(mariner @ 24.8.2011, 16:28) *
Проблема в линковке. Русхаб проверенно работает только в случае динамической линковки луа. Пересоберите луа.

скачал исходники lua-5.1.4 luasocket-2.0.2
как реализовать
Цитата
динамической линковки луа

как их собирать то нужно?

Автор: mariner 24.8.2011, 17:50

В .so библиотеку

Автор: gor1k 24.8.2011, 17:55

Цитата(mariner @ 24.8.2011, 17:50) *
В .so библиотеку

кстати, когда собираю rushub вылазит такая ошибка
Код
/usr/bin/ld: cannot find -ldl
gmake: *** [RusHub] Error 1

Автор: mariner 24.8.2011, 17:58

А собираешь тупо make? надо make freebsd

Автор: gor1k 24.8.2011, 18:05

Цитата(mariner @ 24.8.2011, 17:58) *
А собираешь тупо make? надо make freebsd

Код
make freebsd
make: don't know how to make freebsd. Stop

я так делаю
Код
gmake
g++ -lrt -ldl -o RusHub /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/AdcParser.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/AdcProtocol.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/AntiFlood.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/CallList.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Cli.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Config.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/ConfigList.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Conn.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/ConnChoose.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/ConnEpoll.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/ConnPoll.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/ConnSelect.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/DcConfig.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/DcConfigLoader.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/DcConn.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/DcIpList.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/DcServer.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/DcTag.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/DcUser.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Dir.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/dlfcn.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Exception.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/main.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/MyInfo.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/NmdcParser.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/NmdcProtocol.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Obj.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/PluginList.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/PluginLoader.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Protocol.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Server.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Service.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/StringToArg.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/stringutils.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/Times.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/UserList.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/WebConn.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/WebParser.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/WebProtocol.o /usr/home/gor1k/rushub/rushub/rushub_2.3.6_src/src/tinyxml/tinyxml.a
/usr/bin/ld: cannot find -ldl
gmake: *** [RusHub] Error 1

Автор: mariner 24.8.2011, 18:07

удали -ldl
Он лишний. Я вроде высылал свежие makefiles. Видимо не включили в проект

Автор: gor1k 24.8.2011, 18:15

Цитата(mariner @ 24.8.2011, 18:07) *
удали -ldl
Он лишний. Я вроде высылал свежие makefiles. Видимо не включили в проект

ну я так и сделал.
собирается он нормально после этого.
потом лезу в луа плагин, там
Код
gmake freebsd
g++ -shared -fpic -lrt -o lua.so /usr/rushub/lua_plugin/src/api.o /usr/rushub/lua_plugin/src/Dir.o /usr/rushub/lua_plugin/src/HubConfig.o /usr/rushub/lua_plugin/src/LuaInterpreter.o /usr/rushub/lua_plugin/src/LuaPlugin.o /usr/rushub/lua_plugin/src/LuaUtils.o /usr/rushub/lua_plugin/src/TaskList.o /usr/rushub/lua_plugin/src/TimerList.o /usr/rushub/lua_plugin/src/Uid.o /usr/rushub/lua_plugin/src/tinyxml/tinyxml.a /usr/local/lib/liblua.a

копирую lua.so -> plugins
запускаю хаб.. и т.д.
потом у меня все работает за исключением тех двух скриптов.

Автор: mariner 24.8.2011, 18:15

я написал почему. неверная линковка.

Автор: gor1k 24.8.2011, 18:28

Цитата(mariner @ 24.8.2011, 18:15) *
я написал почему. неверная линковка.

я что то не втыкаю что сделать то нужно, чтобы все заработало..
в исходниках lua & luasocket я не нашел ничего такого что указывало бы на динамические линки.
на пальцах, если можно, распиши.
что, как и где.
исходники у меня есть. последние версии.

Автор: mariner 24.8.2011, 19:19

Ну в общем смотри. Что тебе надо сделать. 1ое - скачай сурцы луа, а потом распакуй и перейди в директорию src. Теперь замени Makefile на вот этот:
http://mydc.ru/r/?http://paste.ubuntu.com/673928/
А потом make liblua.so выполняешь и вуаля. У тебя динамическая либа луа. А дальше тебе надо с ней линковаться.
Думаю статья http://mydc.ru/r/?http://www.adp-gmbh.ch/cpp/gcc/create_lib.html поможет понять что к чему.

UPD
А рассылке луа нашел отличную ссылку. http://mydc.ru/r/?http://lua-users.org/lists/lua-l/2006-10/msg00091.html

Автор: ShadoWx 25.8.2011, 11:15

Николай, стал заменять ваш makefile и вот что пишет при старте компиляции:

Код
[root@godc /usr/rhub/lua-5.1.4]#gmake freebsd
cd src && gmake freebsd
gmake[1]: Entering directory `/usr/rhub/lua-5.1.4/src'
Makefile:53: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.
gmake[1]: Leaving directory `/usr/rhub/lua-5.1.4/src'
gmake: *** [freebsd] Error 2


заменял пробелы табами ..в итоге он не собирает .

Автор: mariner 25.8.2011, 15:09

как бы все собралось. Ждите инструкцию.

Автор: gor1k 25.8.2011, 15:30

Цитата(mariner @ 25.8.2011, 15:09) *
как бы все собралось. Ждите инструкцию.

+1, не собирается.
Makefile кривой
оператора нет перед строчкой

Автор: mariner 25.8.2011, 15:40

У вас табуляция побилась. Таб поставьте.

Автор: ShadoWx 26.8.2011, 20:49

как и обещал вот инструкция: http://mydc.ru/topic4958.html