Поиск:

Ответ в темуСоздание новой темы Создание опроса
> QtLua 
:(
    Опции темы
CompWorm
Дата 2.7.2011, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



Доброго времени.

как я понял, QtScript устарел и поддержка его официально кончилась, хоть он и есть в поставке.
поэтому и многим другим соображением хочу использовать внешние сценарии Lua для Qt проектов...

для этого надо установить поддержку QtLua

в репе у них лежит два файла на эту тему один *.tar.gz (в нём файлы для сборки) и один *.tar.gz.sig (назначение которого я не понял... может это типа плагина к какому-нибудь Eclips ?)

итак имеем:
Ubuntu 10.04
ядро 2.6.32-33
gnome 2.30.2
Qt 4.7.4

для начала я выяснил, что у меня нет самого Lua и заголовочных файлов. я поставил пакеты:
lua5.1
liblua5.1-expat-dev
liblua5.1-0-dev
liblua5.1-0
liblua5.1-gnome-0
и в /usr/include/lua5.1 появились заголовочные файлы
директория с Qt от версии к версии непредсказуемо скачет и в 4.7.4 qmake и прочие лежат у меня в ~/QtSDK/Desktop/Qt/473/gcc/bin

простой запуск ./configure не видит нужных файлов, потому я сделал так:
Цитата

user@user-lnx:~/QtSDK/libqtlua-1.2$ ./configure --with-qt='/home/user/QtSDK/Desktop/Qt/473/gcc/bin' --with-lua-inc-dir='/usr/include/lua5.1' 
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking whether we are using the GNU C++ compiler... (cached) yes
checking whether g++ accepts -g... (cached) yes
checking dependency style of g++... (cached) gcc3
checking how to run the C++ preprocessor... g++ -E
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking if g++ supports -c -o file.o... (cached) yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for qmake-qt4... no
checking for qmake4... no
checking for qmake... /home/user/QtSDK/Desktop/Qt/473/gcc/bin/qmake
checking for moc-qt4... no
checking for moc4... no
checking for moc... /home/user/QtSDK/Desktop/Qt/473/gcc/bin/moc
checking for uic-qt4... no
checking for uic4... no
checking for uic... /home/user/QtSDK/Desktop/Qt/473/gcc/bin/uic
checking for rcc-qt4... no
checking for rcc4... no
checking for rcc... /home/user/QtSDK/Desktop/Qt/473/gcc/bin/rcc
checking Qt install bin path... /home/user/QtSDK/Desktop/Qt/473/gcc/bin
checking Qt spec to use for the host system... -spec linux-g++
checking whether we can build a simple Qt app... ok, looks like Qt 4
checking for the DEFINES to use with Qt...  -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB
checking for the CFLAGS to use with Qt...  -D_REENTRANT 
checking for the CXXFLAGS to use with Qt...  -D_REENTRANT 
checking for the INCPATH to use with Qt...  -I /home/user/QtSDK/Desktop/Qt/473/gcc/mkspecs/linux-g++ -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtUiTools -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtCore -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtGui -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtXml -I /home/user/QtSDK/Desktop/Qt/473/gcc/include
checking for the LDFLAGS to use with Qt...  -Wl,-O1 -Wl,-rpath,/home/user/QtSDK/Desktop/Qt/473/gcc/lib
checking for the LIBS to use with Qt...    -L/home/user/QtSDK/Desktop/Qt/473/gcc/lib -lQtXml -lQtGui -lQtCore -lQtUiTools -lpthread 
checking lua.h usability... yes
checking lua.h presence... yes
checking for lua.h... yes
checking lualib.h usability... yes
checking lualib.h presence... yes
checking for lualib.h... yes
checking lauxlib.h usability... yes
checking lauxlib.h presence... yes
checking for lauxlib.h... yes
checking for cosf in -lm... yes
checking for lua_pushnil in -llua... no
configure: error: can not find lua library; try --with-lua* arguments



как видим из лога, файлы qt и заголовки Lua нашлись, но дальше вылазит
Цитата

checking for lua_pushnil in -llua... no

назначение которого мне не ясно. lua_pushnil это вообще луавская функция, которая описана в lua.h.
Цитата

/*
** push functions (C -> stack)
*/
LUA_API void  (lua_pushnil) (lua_State *L);

но конфиг её не видит...

пробовал и так
Цитата

./configure --with-qt='/home/user/QtSDK/Desktop/Qt/473/gcc/bin' --with-lua-inc-dir='/usr/include/lua5.1' --with-lua-lib='/usr/include/lua5.1/lua.h' 

и сяк
Цитата

./configure --with-qt='/home/user/QtSDK/Desktop/Qt/473/gcc/bin' --with-lua-inc-dir='/usr/include/lua5.1' --with-lua-lib='/usr/include/lua5.1/' 

и эдак
Цитата

./configure --with-qt='/home/user/QtSDK/Desktop/Qt/473/gcc/bin' --with-lua-inc-dir='/usr/include/lua5.1' --with-lua-lib='/usr/lib/lua/5.1' 

и всё равно тупняк...

подскажите, как установить правильно QtLua пожалуйста.

Это сообщение отредактировал(а) CompWorm - 2.7.2011, 17:55


--------------------
PM MAIL   Вверх
kemiisto
Дата 2.7.2011, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 8
Всего: 160



Он не может найти liblua.so. Это типа dll  виндовой, нужна линкеру. Эта либа обычно запиливается пакетом liblua_цифры_dev. Обычно в названии и самой либы есть эти цифры. И обычно же, чтобы линкер находил либу без этих циферок, запиливается симлинк liblua.so -> liblua.5.so -> liblua.5.1-0.so. Надо посмотреть, куды сложились эти сошники, есть ли они.

Цитата(CompWorm @  2.7.2011,  16:47 Найти цитируемый пост)
и эдак

Вот это вариант близок к истине.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
CompWorm
Дата 2.7.2011, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



kemiisto, большое спасибо за наводку. думал никто не ответит smile 

у меня установлена liblua5.1-expat-dev и liblua5.1-0-dev, как я писал выше, лучше я ничего не нашёл в синаптике... 
в папке /usr/lib/ есть таки ссылка liblua5.1.so,которая ссылается на файл со странным названием liblua5.1.so.0.0.0 там же я добавил, по твоему совету, на него ссылку с именем liblua.so и попробовал вот так:

Цитата

./configure --with-qt='/home/user/QtSDK/Desktop/Qt/473/gcc/bin' --with-lua-inc-dir='/usr/include/lua5.1'


то есть тупо не стал указывать имя библиотеки и конфигурация прошла на ура!  smile 

----------------------------------------

теперь о грустном.
при выполнении make опять проблемы

Цитата

user@user-lnx:~/QtSDK/libqtlua-1.2$ make
make  all-recursive
make[1]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2'
Making all in src
make[2]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/src'
make  all-recursive
make[3]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/src'
Making all in QtLua
make[4]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/src/QtLua'
make[4]: Цель `all' не требует выполнения команд.
make[4]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/src/QtLua'
Making all in internal
make[4]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/src/internal'
make[4]: Цель `all' не требует выполнения команд.
make[4]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/src/internal'
make[4]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/src'
/bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I..  -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB  -I /home/user/QtSDK/Desktop/Qt/473/gcc/mkspecs/linux-g++ -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtUiTools -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtCore -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtGui -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtXml -I /home/user/QtSDK/Desktop/Qt/473/gcc/include  -I/usr/include/lua5.1 -D_REENTRANT   -I/usr/include/lua5.1 -Wall -Wno-unused-parameter -DQTLUAREF_DEBUG  -MT libqtlua_la-qtluaconsole.moc.lo -MD -MP -MF .deps/libqtlua_la-qtluaconsole.moc.Tpo -c -o libqtlua_la-qtluaconsole.moc.lo `test -f 'QtLua/qtluaconsole.moc.cc' || echo './'`QtLua/qtluaconsole.moc.cc
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I /home/user/QtSDK/Desktop/Qt/473/gcc/mkspecs/linux-g++ -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtUiTools -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtCore -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtGui -I /home/user/QtSDK/Desktop/Qt/473/gcc/include/QtXml -I /home/user/QtSDK/Desktop/Qt/473/gcc/include -I/usr/include/lua5.1 -D_REENTRANT -I/usr/include/lua5.1 -Wall -Wno-unused-parameter -DQTLUAREF_DEBUG -MT libqtlua_la-qtluaconsole.moc.lo -MD -MP -MF .deps/libqtlua_la-qtluaconsole.moc.Tpo -c QtLua/qtluaconsole.moc.cc  -fPIC -DPIC -o .libs/libqtlua_la-qtluaconsole.moc.o
QtLua/qtluaconsole.moc.cc:14:2: error: #error "This file was generated using the moc from 4.5.3. It"
QtLua/qtluaconsole.moc.cc:15:2: error: #error "cannot be used with the include files from this version of Qt."
QtLua/qtluaconsole.moc.cc:16:2: error: #error "(The moc has changed too much.)"
make[4]: *** [libqtlua_la-qtluaconsole.moc.lo] Ошибка 1
make[4]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/src'
make[3]: *** [all-recursive] Ошибка 1
make[3]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/src'
make[2]: *** [all] Ошибка 2
make[2]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/src'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2'
make: *** [all] Ошибка 2



глядя на фразу
Цитата

This file was generated using the moc from 4.5.3. 
It cannot be used with the include files from this version of Qt. 
The moc has changed too much. 

я понимаю, что на этом всё... полный абзац и QtLua 1.2 устарел и не может интегрироваться в мою версию Qt 4.7.4  smile 

надеюсь, я ошибаюсь и что-то можно сделать, типа перекомпилить этот файл из новой Qt?  smile 

Это сообщение отредактировал(а) CompWorm - 2.7.2011, 22:20


--------------------
PM MAIL   Вверх
CompWorm
Дата 2.7.2011, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



попробовал щас svn скачать
svn co svn://svn.savannah.nongnu.org/libqtlua/trunk/libqtlua
собрать не могу нет конфига, в ридми бред какой-то написан.
попробовал сделать в autoconf
Цитата

user@user-lnx:~/QtSDK/libqtlua-1.2/libqtlua$ autoconf
configure.ac:10: error: possibly undefined macro: AM_INIT_AUTOMAKE
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
configure.ac:14: error: possibly undefined macro: AC_DISABLE_STATIC
configure.ac:15: error: possibly undefined macro: AC_PROG_LIBTOOL
configure.ac:76: error: possibly undefined macro: AM_CONDITIONAL
user@user-lnx:~/QtSDK/libqtlua-1.2/libqtlua$ 


- не получилось... как его собрать то?

Это сообщение отредактировал(а) CompWorm - 2.7.2011, 22:53


--------------------
PM MAIL   Вверх
CompWorm
Дата 2.7.2011, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



что-то сделал, что сам не понял.

итак в папке /home/user/QtSDK/libqtlua-1.2/ у меня обычный установочный набор,
в /home/user/QtSDK/libqtlua-1.2/libqtlua/ скаченый svn.

в папке /home/user/QtSDK/libqtlua-1.2/  я выполнил 
Цитата

make distclean
cd libqtlua
../configure --with-qt='/home/user/QtSDK/Desktop/Qt/473/gcc/bin' --with-lua-inc-dir='/usr/include/lua5.1'
make
make install

и, о чудо! вроде без ошибок всё собралось!
однако, не понятно, что именно и куда  smile 
так как если сделать проверку

Цитата

user@user-lnx:~/QtSDK/libqtlua-1.2/libqtlua$ make check
Making check in src
make[1]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/src'
make  check-recursive
make[2]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/src'
Making check in QtLua
make[3]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/src/QtLua'
make[3]: Цель `check' не требует выполнения команд.
make[3]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/src/QtLua'
Making check in internal
make[3]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/src/internal'
make[3]: Цель `check' не требует выполнения команд.
make[3]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/src/internal'
make[3]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/src'
make[3]: Цель `check-am' не требует выполнения команд.
make[3]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/src'
make[2]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/src'
make[1]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/src'
Making check in tools
make[1]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/tools'
Making check in qtlua
make[2]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/tools/qtlua'
make[2]: Цель `check' не требует выполнения команд.
make[2]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/tools/qtlua'
make[2]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/tools'
make[2]: Цель `check-am' не требует выполнения команд.
make[2]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/tools'
make[1]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/tools'
Making check in test
make[1]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/test'
make  check-am
make[2]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/test'
make  check-TESTS
make[3]: Вход в каталог `/home/user/QtSDK/libqtlua-1.2/libqtlua/test'
test_value.cc:45:OK
test_value.cc:46:OK
test_value.cc:47:OK
test_value.cc:48:OK
test_value.cc:49:OK
test_value.cc:50:OK
test_value.cc:51:OK
test_value.cc:52:OK
test_value.cc:67:OK
test_value.cc:68:OK
test_value.cc:69:OK
test_value.cc:70:OK
test_value.cc:71:OK
test_value.cc:72:OK
test_value.cc:73:OK
test_value.cc:84:OK
test_value.cc:85:OK
test_value.cc:93:OK
test_value.cc:94:OK
test_value.cc:103:OK
test_value.cc:104:OK
test_value.cc:116:OK
test_value.cc:117:OK
PASS: test_value
test_table.cc:39:OK
test_table.cc:50:OK
test_table.cc:51:OK
test_table.cc:52:OK
test_table.cc:54:OK
/bin/bash: строка 5:  7662 Ошибка сегментирования                   ${dir}$tst
FAIL: test_table
/bin/bash: строка 5:  7682 Ошибка сегментирования                   ${dir}$tst
FAIL: test_qobject_arg
/bin/bash: строка 5:  7701 Ошибка сегментирования                   ${dir}$tst
FAIL: test_item
===================
3 of 4 tests failed
===================
make[3]: *** [check-TESTS] Ошибка 1
make[3]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/test'
make[2]: *** [check-am] Ошибка 2
make[2]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/test'
make[1]: *** [check] Ошибка 2
make[1]: Выход из каталога `/home/user/QtSDK/libqtlua-1.2/libqtlua/test'
make: *** [check-recursive] Ошибка 1


то 3 теста из 4 провалены.
открываю qtcreator там ничего нового... ни примеров, ни хелпа


--------------------
PM MAIL   Вверх
kemiisto
Дата 3.7.2011, 00:40 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 8
Всего: 160



CompWorm, можеть поковыряю завтра. А пока уточним два момента.

Первый.
Цитата(CompWorm @  2.7.2011,  16:47 Найти цитируемый пост)
как я понял, QtScript устарел и поддержка его официально кончилась, хоть он и есть в поставке.

Откуда дровишки? Это невозможно, если я правильно себе понимаю вектор развития Qt.

Второй. Зачем Lua? Я понимаю, что она может нравится синтаксически. Но она настолько менее популярна, чем тот же Python, что игра не стоит свеч. PythonQt...


--------------------
PM MAIL WWW GTalk Jabber   Вверх
kemiisto
Дата 3.7.2011, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 8
Всего: 160



Цитата(kemiisto @  2.7.2011,  23:40 Найти цитируемый пост)
CompWorm, можеть поковыряю завтра.

Я тут случайно SimplyMEPIS в виртуалке нашёл. Это типа Debian stable + пара своих репов. Qt 4.7.1 и liblua5 поставил из репов.
Код
# apt-get install qt4-dev-tools liblua5.1-0-dev


Релиз этой твоей либы устарел, как ты утверждаешь, так что я сразу пошёл в svn
Код
# apt-get install subversion
# svn co svn://svn.savannah.nongnu.org/libqtlua/trunk/libqtlua
[...]
Checked out revision 97.


Они перешли на CMake. Не беда:
Код
# apt-get install cmake
# cd libqtlua
# mkdir bld
# cd bld
# cmake ..
# make 


У меня всё собралось без запинок. smile 

Это сообщение отредактировал(а) kemiisto - 3.7.2011, 02:20


--------------------
PM MAIL WWW GTalk Jabber   Вверх
CompWorm
Дата 3.7.2011, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



да, у меня так же собралось и с той химией, что я написал выше и с cmake. в конце cmake варианта я ставил make install

вопрос - у тебя что-нибудь заработало после этого?
я вот пишу в консоль 

Цитата

user@user-lnx:~/QtSDK/libqtlua/examples/lua/hello$ ls
hello.lua  hello.ui  README

user@user-lnx:~/QtSDK/libqtlua/examples/lua/hello$ qtlua 'hello.lua' 
qtlua: error while loading shared libraries: libqtlua.so: cannot open shared object file: No such file or directory


Добавлено через 8 минут и 47 секунд
Цитата(kemiisto @  3.7.2011,  00:40 Найти цитируемый пост)
Откуда дровишки? 

из лесу вестимо
во всяком случае, как мне кажется популярность ECMAScript ещё меньше чем Lua. её я по крайней мере видел в действии и использовал для скриптования уровней в Eufloria и MTA.  Python конечно вне конкуренции, но он не такой смешной и как-то приелся smile короче, хочу, чтоб было Lua.


--------------------
PM MAIL   Вверх
CompWorm
Дата 3.7.2011, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



make install устанавливает следующим образом

Цитата

user@user-lnx:~/QtSDK/libqtlua/bld$ sudo make install
[ 97%] Built target qtlua
[100%] Built target qtlua_app
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/bin/qtlua
-- Removed runtime path from "/usr/local/bin/qtlua"
-- Installing: /usr/local/lib/libqtlua.so
-- Removed runtime path from "/usr/local/lib/libqtlua.so"
-- Installing: /usr/local/include/Function
-- Installing: /usr/local/include/qtluafunction.hh
-- Installing: /usr/local/include/qtluafunction.hxx
-- Installing: /usr/local/include/Console
-- Installing: /usr/local/include/qtluaconsole.hh
-- Installing: /usr/local/include/qtluaconsole.hxx
-- Installing: /usr/local/include/Item
-- Installing: /usr/local/include/qtluaitem.hh
-- Installing: /usr/local/include/qtluaitem.hxx
-- Installing: /usr/local/include/TableTreeModel
-- Installing: /usr/local/include/qtluatabletreemodel.hh
-- Installing: /usr/local/include/TableDialog
-- Installing: /usr/local/include/qtluatabledialog.hh
-- Installing: /usr/local/include/qtluatabledialog.hxx
-- Installing: /usr/local/include/TableGridModel
-- Installing: /usr/local/include/qtluatablegridmodel.hh
-- Installing: /usr/local/include/ItemModel
-- Installing: /usr/local/include/qtluaitemmodel.hh
-- Installing: /usr/local/include/ItemSelectionModel
-- Installing: /usr/local/include/qtluaitemselectionmodel.hh
-- Installing: /usr/local/include/qtluaitemselectionmodel.hxx
-- Installing: /usr/local/include/Iterator
-- Installing: /usr/local/include/qtluaiterator.hh
-- Installing: /usr/local/include/qtluaiterator.hxx
-- Installing: /usr/local/include/ListItem
-- Installing: /usr/local/include/qtlualistitem.hh
-- Installing: /usr/local/include/qtlualistitem.hxx
-- Installing: /usr/local/include/Plugin
-- Installing: /usr/local/include/qtluaplugin.hh
-- Installing: /usr/local/include/qtluaplugin.hxx
-- Installing: /usr/local/include/PluginInterface
-- Installing: /usr/local/include/qtluaplugininterface.hh
-- Installing: /usr/local/include/State
-- Installing: /usr/local/include/qtluastate.hh
-- Installing: /usr/local/include/qtluastate.hxx
-- Installing: /usr/local/include/UserData
-- Installing: /usr/local/include/qtluauserdata.hh
-- Installing: /usr/local/include/qtluauserdata.hxx
-- Installing: /usr/local/include/UserObject
-- Installing: /usr/local/include/qtluauserobject.hh
-- Installing: /usr/local/include/qtluauserobject.hxx
-- Installing: /usr/local/include/Value
-- Installing: /usr/local/include/qtluavalue.hh
-- Installing: /usr/local/include/qtluavalue.hxx
-- Installing: /usr/local/include/ValueRef
-- Installing: /usr/local/include/qtluavalueref.hh
-- Installing: /usr/local/include/qtluavalueref.hxx
-- Installing: /usr/local/include/Ref
-- Installing: /usr/local/include/qtluaref.hh
-- Installing: /usr/local/include/String
-- Installing: /usr/local/include/qtluastring.hh
-- Installing: /usr/local/include/qtluastring.hxx
-- Installing: /usr/local/include/QHashProxy
-- Installing: /usr/local/include/qtluaqhashproxy.hh
-- Installing: /usr/local/include/qtluaqhashproxy.hxx
-- Installing: /usr/local/include/QVectorProxy
-- Installing: /usr/local/include/qtluaqvectorproxy.hh
-- Installing: /usr/local/include/qtluaqvectorproxy.hxx
-- Installing: /usr/local/include/QListProxy
-- Installing: /usr/local/include/qtluaqlistproxy.hh
-- Installing: /usr/local/include/qtluaqlistproxy.hxx
-- Installing: /usr/local/include/QLinkedListProxy
-- Installing: /usr/local/include/qtluaqlinkedlistproxy.hh
-- Installing: /usr/local/include/qtluaqlinkedlistproxy.hxx


сделал симлинк от /usr/local/lib/libqtlua.so в /usr/lib/libqtlua.so
ошибка изменилась на
Цитата

user@user-lnx:~/QtSDK/libqtlua$ qtlua
qtlua: symbol lookup error: /usr/lib/libqtlua.so: undefined symbol: _ZN9QListData11detach_growEPii


не знаю к чему бы это


--------------------
PM MAIL   Вверх
kemiisto
  Дата 3.7.2011, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 8
Всего: 160



Цитата(CompWorm @  3.7.2011,  09:42 Найти цитируемый пост)
сделал симлинк от /usr/local/lib/libqtlua.so в /usr/lib/libqtlua.so

Так, конечно, делать не рекомендуется. Вообще система ищет эти самые *.so в папках, заданных в конфигурационных файлах /etc/ld.so.conf.d/*.conf + в переменной LD_LIBRARY_PATH. Раньше ещё (до 9.10) эту переменную можно было в .profile изменять. [url=https://help.ubuntu.com/community/EnvironmentVariables#File-location related variables]Сейчас уже нет[/url].

Тут неплохо на русском.

Варианты:
  • Разобраться с конфигурационными файлами.
  • # export LD_LIBRARY_PATH=/usr/local/lib перед запуском.
  • Разобраться с CMake и опцией линкера -R.
По поводу последнего. Вот. Только это опция линкера. А там по-простому сделано. Линкуется прямо компилятором. Чтобы ему передать эту опцию надо запилить -Wl,-R/usr/local/lib. Вот тут начинаются пляски с CMake. Ну, вроде как, надо использовать CMAKE_EXE_LINKER_FLAGS. Я добавил SET(CMAKE_EXE_LINKER_FLAGS -Wl,-R/usr/local/lib) в CMakeLists.txt и пересобрал.

И, вроде как, он понял мои намерения
Код
$ ldd qtlua 
        linux-gate.so.1 =>  (0xb7835000)
        libqtlua.so => /usr/local/lib/libqtlua.so (0xb76e5000)
        ...

но после копирования qtlua в /usr/local/lib
Код
$ ldd /usr/local/lib/qtlua 
        linux-gate.so.1 =>  (0xb7835000)
        libqtlua.so => not found
        ...

 smile Вот тут я уже что-то не понимаю.

Цитата(CompWorm @  3.7.2011,  09:42 Найти цитируемый пост)
не знаю к чему бы это

Хм... У меня работает. Запиливаю пруф! smile 
user posted image

CompWorm, это DLL-Hell, если ты ещё не понял. В Linux его никто решать не собирается. You are welcome! smile 

Это сообщение отредактировал(а) kemiisto - 3.7.2011, 12:05


--------------------
PM MAIL WWW GTalk Jabber   Вверх
kemiisto
Дата 3.7.2011, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 8
Всего: 160



Цитата(CompWorm @  3.7.2011,  09:25 Найти цитируемый пост)
из лесу вестимо

Ты всё неправильно понял. smile Была такая штука Qt Script for Applications (QSA). Вот она не поддерживается с 2008 года. А QtScript как раз её и потеснил. Хотя согласен, статья в Вики написана криво. Этим, правда, никого не удивишь. Вот таже статья на английском написана куда чётче. smile 
Цитата
An earlier and unrelated scripting engine, called Qt Script for Applications (QSA), was shipped by Trolltech as a separate Qt-based library, dual-licensed under GPL and a commercial license.
With the release of QtScript, QSA has been deprecated and has reached its end of life in 2008.



--------------------
PM MAIL WWW GTalk Jabber   Вверх
Severyanin
Дата 3.7.2011, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Исследователь
**


Профиль
Группа: Участник
Сообщений: 554
Регистрация: 31.7.2007
Где: Россия, Омск

Репутация: нет
Всего: 9



CompWorm, , попробуй еще раз окончательно снести луа и qtlua и переставить. Я думаю, что сейчас у тебя в системе остались ошметки старой либы, поэтому линкер и не может функции из сошек вытянуть)


--------------------
"Звонким вереском скроются наши следы, и не вспомнят о них. Кто поверит нам, рыцарям павшей звезды из отвергнутых книг? Пусть в узоре времен ни стихов. ни имен, но напомнит забывшим их полуночный крик." Тэм Гринхилл
"Ужели суслик твоего коварства нагадит в плов доверья моего?". Л.Филатов 
PM MAIL WWW ICQ   Вверх
CompWorm
Дата 3.7.2011, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

Репутация: нет
Всего: 31



сделал немного по-другому, но с тем же положительным эффектом

было что-то типа
Цитата

user@user-lnx:~/QtSDK/libqtlua/bld$ ldd qtlua
    linux-gate.so.1 =>  (0x00bb2000)
    libqtlua.so => /QtSDK/libqtlua/bld (бла бла бла)

в CMakeCache.txt нашёл строку и подписал
CMAKE_EXE_LINKER_FLAGS:STRING=-Wl,-R/usr/local/lib
пересобрал, получил:
Цитата

user@user-lnx:~/QtSDK/libqtlua/bld$ ldd qtlua
    linux-gate.so.1 =>  (0x00bb2000)
    libqtlua.so => /usr/local/lib/libqtlua.so (0x0051a000)


теперь никаких симлинков, линкуется библа сразу. спасибо.

по поводу ошибки при запуске скрипта погуглил что такое _ZN9QListData11detach_growEPii
это проблема с самим Qt и в этом плане я не одинок. вечерком ещё поковыряюсь


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0877 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.