Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 1, 2012 02:01:41

user_id
Зарегистрирован: 2012-04-01
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyside in C++

Доброго времени суток, форумчане. Наткнулся на проблему с которой никак не могу справиться. Шагал пошагово по этому примеру http://lynxline.com/superhybrids-part-2-now-qt-pyside/ , его аналогия на русском http://habrahabr.ru/post/120479/
И вот ведь незадача.

generatorrunner --generatorSet=shiboken \
    ../data/global.h \
    --include-paths=../hybrid:$QTCORE_INC:$QTGUI_INC:/usr/include \
    --typesystem-paths=../data:$QTTYPESYSTEM \
    --output-directory=. \
    ../data/typesystem.xml
При выполнении вот этой штуки получаю 859 предупреждений.
А потом
Done, 859 warnings (0 known issues)
WARNING: Failure to find: pyhybrid/pyhybrid_module_wrapper.cpp
WARNING: Failure to find: pyhybrid/mainwindow_wrapper.cpp
make: *** Нет правила для сборки цели `pyhybrid/pyhybrid_module_wrapper.cpp', требуемой для `pyhybrid_module_wrapper.o'.  Останов.
Но почему мне пока тяжело понять. Мне кто-то поможет. В интернете всё обыскал. ответа не нашел.

Офлайн

#2 Апрель 1, 2012 02:22:47

user_id
Зарегистрирован: 2012-04-01
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Pyside in C++

Просмотрел фаил проэкта проблема была в заглавных буквах вместо pyhybrid надо было PyHybrid.
Но на этом приключения не закончились. Компиляция плевалась ошибкой в mainwindow_wrapper.cpp что не может инклуднуть Python.h и python25compat.h. Я сделал конечно может жестковато может некрасиво и неправильно. Но я заменил в инклудах на полные пути к этим библиотекам, к стати в python25compat.h тоже пришлось вставлять путь к Python.h. Эту канавку перепрыгнули, и снова всё не слава богу.
получаю такую ошибку.

/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: cannot find -lpython2.6
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: cannot find -lpyside
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: cannot find -lshiboken
collect2: ld returned 1 exit status
make: *** [../libPyHybrid.so.1.0.0] Ошибка 1

Как её обойти? А?

Офлайн

#3 Июнь 15, 2016 17:35:16

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

Pyside in C++

Пытался повторить этот урок, используя python3. Ошибки привели меня к поисковику яндекса, который нашёл мне эту давнюю тему. Возможно, кого-то сюда вслед за мной принесёт, поэтому оставлю здесь исправленные под linux Mageia 5 файлы:
build.sh

#!/bin/sh
cd hybrid
qmake
make
cd ..
cd hybridpy
QTGUI_INC=/usr/include/QtGui
QTCORE_INC=/usr/include/QtCore
QTTYPESYSTEM=/usr/share/PySide/typesystems
shiboken-3.4 \
    ../data/global.h \
    --include-paths=../hybrid:$QTCORE_INC:$QTGUI_INC:/usr/include \
    --typesystem-paths=../data:$QTTYPESYSTEM \
    --output-directory=. \
    ../data/typesystem.xml
qmake
make
cd ..
rm -rf PyHybrid.so
ln -s libPyHybrid.so PyHybrid.so

hybridpy.pro
TEMPLATE = lib
QT += core gui
INCLUDEPATH += hybrid
INCLUDEPATH += ../hybrid
INCLUDEPATH += /usr/include/python3.4m
INCLUDEPATH += /usr/include/shiboken
INCLUDEPATH += /usr/include/PySide
INCLUDEPATH += /usr/include/PySide/QtCore
INCLUDEPATH += /usr/include/PySide/QtGui
LIBS += -ldl -lpython3.4
LIBS += -lshiboken.cpython-34m
LIBS += -lpyside.cpython-34m
LIBS += -L.. -lHybrid
TARGET = ../PyHybrid
SOURCES += \
    PyHybrid/pyhybrid_module_wrapper.cpp \
    PyHybrid/mainwindow_wrapper.cpp \ 



Отредактировано leonid_10 (Июнь 15, 2016 17:39:43)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version