Найти - Пользователи
Полная версия: Pyside in C++
Начало » Python для экспертов » Pyside in C++
1
user_id
Доброго времени суток, форумчане. Наткнулся на проблему с которой никак не могу справиться. Шагал пошагово по этому примеру 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'.  Останов.
Но почему мне пока тяжело понять. Мне кто-то поможет. В интернете всё обыскал. ответа не нашел.
user_id
Просмотрел фаил проэкта проблема была в заглавных буквах вместо 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

Как её обойти? А?
leonid_10
Пытался повторить этот урок, используя 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 \ 
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB