Anzeige:
Ergebnis 1 bis 6 von 6

Thema: shared Library's und Qt-Creator

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.10.2011
    Ort
    Braunschweig
    Beiträge
    8

    Exclamation shared Library's und Qt-Creator

    Hallo,
    mein aktuelles Betriebssystem ist Mac OS X.
    Seit ein paar Tagen benutze ich Qt-Creator. Vorher habe ich es ohne viel Erfolg mit XCode versucht.

    Eine dynamisch zu linkende Bibliothek habe ich damit programmiert.
    Die Bibliothek und die Header-Dateien stehen unter "/usr/local/include" und "/usr/local/lib".

    Nun möchte ich in einem Testprogramm Funktionen dieser Library aufrufen.
    Da ich im Qt-Creator keinen Ort gefunden habe, an dem ich eine dynamisch zu linkende Bibliothek eintragen kann, habe ich das *.pro File editiert.

    Code:
    INCLUDEPATH += /usr/local/include
    LIBS += /usr/local/lib
    Das Testprogramm kompiliert kommt nun ein Fehler:
    Code:
    in /usr/local/lib, can't map file, errno=22*for archetecture x86_64
    collect2: ld returned 1*exit status
    Unter Ubuntu-Linux habe ich diese Library bereits benutzt. Dort habe ich mit Hilfe von
    KDevelop programmiert.

    Nun komme ich nicht weiter, weil ich nicht weiß, wie der Name der Library dem Qt-Creator oder
    dem Testproramm bekannt wird.


    Mit freundlichen Grüßen
    GBunge

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Code:
    LIBS += -L/usr/local/lib -lnamederlib
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.10.2011
    Ort
    Braunschweig
    Beiträge
    8
    Hallo anda_skoa,
    danke für die schnelle Antwort. Es klappt nun auch.
    Allerdings crasht das Programm, sobald ich eine Funktion aus der Bibliothek aufrufe.
    MfG

  4. #4
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Zeige mal die Ausgabe von:
    Code:
    nm -g -D -C --defined-only /usr/local/lib/meinebib.so
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

  5. #5
    Registrierter Benutzer
    Registriert seit
    30.10.2011
    Ort
    Braunschweig
    Beiträge
    8
    Zitat Zitat von undefined Beitrag anzeigen
    Zeige mal die Ausgabe von:
    Code:
    nm -g -D -C --defined-only /usr/local/lib/meinebib.so
    Hallo undifined,
    meine Bibliothek steht nicht in /usr/local/lib.
    Ich habe sie während der Entwicklungsphase in einem Ordner in meinem Home.
    Code:
    erde:~ gb$ nm -g ALIBS/*.so
    nm: can't open file: ALIBS/*.so (No such file or directory)
    Die Bibliothek endet auf "dylib"
    Code:
    erde:~ gb$ nm -g ALIBS/*.*
    
    ALIBS/libJulian.dylib:
                     U __Unwind_Resume
    0000000000003342 T __Z7qt_noopv
                     U __Z9qt_assertPKcS0_i
                     U __ZN11QMetaObject18connectSlotsByNameEP7QObject
                     U __ZN11QPushButtonC1EP7QWidget
                     U __ZN15QAbstractButton7setTextERK7QString
    0000000000002c8a T __ZN15QBasicAtomicInt5derefEv
                     U __ZN16QCoreApplication9translateEPKcS1_S1_NS_8EncodingE
    0000000000002cee T __ZN5QRectC1Eiiii
    0000000000002cca T __ZN5QSizeC1Eii
    00000000000031c0 T __ZN6Julian11qt_metacallEN11QMetaObject4CallEiPPv
    00000000000032a2 T __ZN6Julian11qt_metacastEPKc
    0000000000004160 S __ZN6Julian16staticMetaObjectE
    00000000000028a2 T __ZN6Julian6hideMeEv
    00000000000029d0 T __ZN6Julian6readMeEv
    000000000000288a T __ZN6Julian6showMeEv
    0000000000002b26 T __ZN6JulianC1EP7QWidget
    0000000000002bd8 T __ZN6JulianC2EP7QWidget
    0000000000002a02 T __ZN6JulianD0Ev
    0000000000002a6a T __ZN6JulianD1Ev
    0000000000002ac8 T __ZN6JulianD2Ev
    0000000000002dbe T __ZN6QFlagsIN2Qt10WindowTypeEEC1EPPv
                     U __ZN7QDialog10closeEventEP11QCloseEvent
                     U __ZN7QDialog10setVisibleEb
                     U __ZN7QDialog11eventFilterEP7QObjectP6QEvent
                     U __ZN7QDialog11qt_metacallEN11QMetaObject4CallEiPPv
                     U __ZN7QDialog11qt_metacastEPKc
                     U __ZN7QDialog11resizeEventEP12QResizeEvent
                     U __ZN7QDialog13keyPressEventEP9QKeyEvent
                     U __ZN7QDialog16contextMenuEventEP17QContextMenuEvent
                     U __ZN7QDialog16staticMetaObjectE
                     U __ZN7QDialog4doneEi
                     U __ZN7QDialog6acceptEv
                     U __ZN7QDialog6rejectEv
                     U __ZN7QDialog9showEventEP10QShowEvent
                     U __ZN7QDialogC2EP7QWidget6QFlagsIN2Qt10WindowTypeEE
                     U __ZN7QDialogD2Ev
                     U __ZN7QObject10childEventEP11QChildEvent
                     U __ZN7QObject10timerEventEP11QTimerEvent
                     U __ZN7QObject11customEventEP6QEvent
                     U __ZN7QObject13connectNotifyEPKc
                     U __ZN7QObject13setObjectNameERK7QString
                     U __ZN7QObject16disconnectNotifyEPKc
                     U __ZN7QString16fromAscii_helperEPKci
                     U __ZN7QString4freeEPNS_4DataE
                     U __ZN7QString8fromUtf8EPKci
    0000000000002dd6 T __ZN7QStringC1EPKc
    0000000000002e30 T __ZN7QStringD1Ev
                     U __ZN7QStringaSERKS_
                     U __ZN7QWidget10enterEventEP6QEvent
                     U __ZN7QWidget10fontChangeERK5QFont
                     U __ZN7QWidget10leaveEventEP6QEvent
                     U __ZN7QWidget10paintEventEP11QPaintEvent
                     U __ZN7QWidget10wheelEventEP11QWheelEvent
                     U __ZN7QWidget11actionEventEP12QActionEvent
                     U __ZN7QWidget11changeEventEP6QEvent
                     U __ZN7QWidget11setGeometryERK5QRect
                     U __ZN7QWidget11styleChangeER6QStyle
                     U __ZN7QWidget11tabletEventEP12QTabletEvent
                     U __ZN7QWidget12focusInEventEP11QFocusEvent
                     U __ZN7QWidget13dragMoveEventEP14QDragMoveEvent
                     U __ZN7QWidget13enabledChangeEb
                     U __ZN7QWidget13focusOutEventEP11QFocusEvent
                     U __ZN7QWidget13paletteChangeERK8QPalette
                     U __ZN7QWidget14dragEnterEventEP15QDragEnterEvent
                     U __ZN7QWidget14dragLeaveEventEP15QDragLeaveEvent
                     U __ZN7QWidget14languageChangeEv
                     U __ZN7QWidget14mouseMoveEventEP11QMouseEvent
                     U __ZN7QWidget14setWindowTitleERK7QString
                     U __ZN7QWidget15keyReleaseEventEP9QKeyEvent
                     U __ZN7QWidget15mousePressEventEP11QMouseEvent
                     U __ZN7QWidget16inputMethodEventEP17QInputMethodEvent
                     U __ZN7QWidget17mouseReleaseEventEP11QMouseEvent
                     U __ZN7QWidget18focusNextPrevChildEb
                     U __ZN7QWidget21mouseDoubleClickEventEP11QMouseEvent
                     U __ZN7QWidget22windowActivationChangeEb
    0000000000002d60 T __ZN7QWidget4hideEv
    0000000000002d38 T __ZN7QWidget4showEv
                     U __ZN7QWidget5eventEP6QEvent
                     U __ZN7QWidget6resizeERK5QSize
    0000000000002e00 T __ZN7QWidget6resizeEii
                     U __ZN7QWidget8macEventEP25OpaqueEventHandlerCallRefP14OpaqueEventRef
                     U __ZN7QWidget9dropEventEP10QDropEvent
                     U __ZN7QWidget9hideEventEP10QHideEvent
                     U __ZN7QWidget9moveEventEP10QMoveEvent
    0000000000002e60 T __ZN9Ui_Julian13retranslateUiEP7QDialog
    0000000000002f2e T __ZN9Ui_Julian7setupUiEP7QDialog
    0000000000003348 T __ZNK14QScopedPointerI11QObjectData21QScopedPointerDeleterIS0_EEptEv
    00000000000032f8 T __ZNK6Julian10metaObjectEv
                     U __ZNK7QDialog15minimumSizeHintEv
                     U __ZNK7QDialog8sizeHintEv
                     U __ZNK7QObject10objectNameEv
    0000000000002cae T __ZNK7QString7isEmptyEv
                     U __ZNK7QWidget11paintEngineEv
                     U __ZNK7QWidget14heightForWidthEi
                     U __ZNK7QWidget16inputMethodQueryEN2Qt16InputMethodQueryE
                     U __ZNK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE
                     U __ZNK7QWidget7devTypeEv
                     U __ZNKSs4sizeEv
                     U __ZNKSsixEm
    0000000000002d87 T __ZSt3minImERKT_S2_S2_
    0000000000004390 S __ZTI6Julian
                     U __ZTI7QDialog
    00000000000036bc S __ZTS6Julian
    0000000000004180 S __ZTV6Julian
                     U __ZTVN10__cxxabiv120__si_class_type_infoE
    00000000000029f9 T __ZThn16_N6JulianD0Ev
    0000000000002a60 T __ZThn16_N6JulianD1Ev
                     U __ZThn16_NK7QWidget11paintEngineEv
                     U __ZThn16_NK7QWidget6metricEN12QPaintDevice17PaintDeviceMetricE
                     U __ZThn16_NK7QWidget7devTypeEv
                     U __ZdlPv
                     U __Znwm
                     U ___gxx_personality_v0
                     U _strcmp
    erde:~ gb$
    MfG GBunge

  6. #6
    Registrierter Benutzer Avatar von undefined
    Registriert seit
    01.03.2004
    Beiträge
    1.255
    Habe ich richtig vermutet
    Du verwendest einen gcc >= 4.* Compiler
    Wenn du Bibliotheken schreibst mußt du dich mit Visibility auseinander setzen.
    http://gcc.gnu.org/wiki/Visibility
    Außerdem werden deine Pfade zu den Abhängigkeiten nicht aufgelöst.
    Siehe ldd und ld
    Beispiel:
    Code:
    ~> ldd libxhtmldbg-1.0.so.0.8.13
            linux-gate.so.1 =>  (0xffffe000)
            libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb748c000)
            libpthread.so.0 => /lib/libpthread.so.0 (0xb7472000)
            libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb6819000)
            libQtXml.so.4 => /usr/lib/libQtXml.so.4 (0xb67cf000)
            libQtDBus.so.4 => /usr/lib/libQtDBus.so.4 (0xb673d000)
            libkdeui.so.5 => /usr/lib/libkdeui.so.5 (0xb6272000)
            libqjson.so.0 => /usr/lib/libqjson.so.0 (0xb6251000)
            libkdecore.so.5 => /usr/lib/libkdecore.so.5 (0xb5f2f000)
            libQtSvg.so.4 => /usr/lib/libQtSvg.so.4 (0xb5ed1000)
            libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb5dce000)
            libm.so.6 => /lib/libm.so.6 (0xb5da8000)
            libc.so.6 => /lib/libc.so.6 (0xb5c39000)
            libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb5c19000)
            libodbc.so.1 => /usr/lib/libodbc.so.1 (0xb5ba7000)
            libodbcinst.so.1 => /usr/lib/libodbcinst.so.1 (0xb5b93000)
            libsqlite.so.0 => /usr/lib/libsqlite.so.0 (0xb5b32000)
            libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0xb5a5a000)
            libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0xb59ff000)
            libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0xb5847000)
            libdl.so.2 => /lib/libdl.so.2 (0xb5843000)
            libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0xb57f3000)
            librt.so.1 => /lib/librt.so.1 (0xb57ea000)
            libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb56b4000)
            libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb5674000)
            libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb5648000)
            libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb55b1000)
            libz.so.1 => /lib/libz.so.1 (0xb5597000)
            libiconv.so.2 => /usr/lib/libiconv.so.2 (0xb54b1000)
            libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb54aa000)
            /lib/ld-linux.so.2 (0xb7863000)
            libpng14.so.14 => /usr/lib/libpng14.so.14 (0xb547d000)
            libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb5429000)
            libSM.so.6 => /opt/kde3/lib/libSM.so.6 (0xb5420000)
            libICE.so.6 => /usr/lib/libICE.so.6 (0xb5405000)
            libXi.so.6 => /usr/lib/libXi.so.6 (0xb53f6000)
            libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb53eb000)
            libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb53e2000)
            libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb53db000)
            libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb53d0000)
            libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb53cb000)
            libXext.so.6 => /usr/lib/libXext.so.6 (0xb53b7000)
            libX11.so.6 => /usr/lib/libX11.so.6 (0xb52ae000)
            libXft.so.2 => /usr/lib/libXft.so.2 (0xb5296000)
            libXau.so.6 => /usr/lib/libXau.so.6 (0xb5292000)
            libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb528b000)
            libXpm.so.4 => /usr/lib/libXpm.so.4 (0xb5278000)
            libattica.so.0 => /usr/lib/libattica.so.0 (0xb51f1000)
            libQtNetwork.so.4 => /usr/lib/libQtNetwork.so.4 (0xb508a000)
            libdbusmenu-qt.so.2 => /usr/lib/libdbusmenu-qt.so.2 (0xb5051000)
            libXtst.so.6 => /usr/lib/libXtst.so.6 (0xb504a000)
            libbz2.so.1 => /lib/libbz2.so.1 (0xb5036000)
            liblzma.so.5 => /usr/lib/liblzma.so.5 (0xb500b000)
            libresolv.so.2 => /lib/libresolv.so.2 (0xb4ff4000)
            libfam.so.1 => /usr/lib/libfam.so.1 (0xb4feb000)
            libltdl.so.7 => /usr/lib/libltdl.so.7 (0xb4fe1000)
            libgomp.so.1 => /usr/lib/libgomp.so.1 (0xb4fcf000)
            libffi.so.4 => /usr/lib/libffi.so.4 (0xb4fc7000)
            libuuid.so.1 => /lib/libuuid.so.1 (0xb4fc1000)
            libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb4fa3000)
    
    ~> ld libxhtmldbg-1.0.so.0.8.13
    ld: warning: cannot find entry symbol _start; not setting start address
    
    ~> nm -g -D -C --defined-only  libxhtmldbg-1.0.so.0.8.13
    00004800 T xhtmldbg::PluginInfo::getVersion()
    00004940 T xhtmldbg::PluginInfo::setVersion(QString const&)
    00003e40 T xhtmldbg::PluginInfo::qt_metacall(QMetaObject::Call, int, void**)
    00003da0 T xhtmldbg::PluginInfo::qt_metacast(char const*)
    00004a00 T xhtmldbg::PluginInfo::dbusInterface(QDBusConnection const&, QObject*)
    00004840 T xhtmldbg::PluginInfo::getDescription()
    000047c0 T xhtmldbg::PluginInfo::getGenericName()
    00004980 T xhtmldbg::PluginInfo::setDescription(QString const&)
    00004900 T xhtmldbg::PluginInfo::setGenericName(QString const&)
    0000adc4 D xhtmldbg::PluginInfo::staticMetaObject
    00004780 T xhtmldbg::PluginInfo::getName()
    000048c0 T xhtmldbg::PluginInfo::setName(QString const&)
    00004880 T xhtmldbg::PluginInfo::getAuthor()
    000049c0 T xhtmldbg::PluginInfo::setAuthor(QString const&)
    000046e0 T xhtmldbg::PluginInfo::PluginInfo(QObject*, xhtmldbg::PluginInfo::PluginType)
    00004660 T xhtmldbg::PluginInfo::PluginInfo(QObject*, xhtmldbg::PluginInfo::PluginType)
    00004480 T xhtmldbg::WinInterface::qt_metacall(QMetaObject::Call, int, void**)
    000043a0 T xhtmldbg::WinInterface::qt_metacast(char const*)
    00006aa0 T xhtmldbg::WinInterface::errorMessage(QString const&)
    00006920 T xhtmldbg::WinInterface::noticeMessage(QString const&)
    0000ae78 D xhtmldbg::WinInterface::staticMetaObject
    00006c20 T xhtmldbg::WinInterface::open(QUrl const&, bool)
    00004420 T xhtmldbg::WinInterface::error(QString const&, QString const&)
    00006da0 T xhtmldbg::WinInterface::setUrl(QUrl const&, QUrl const&)
    00006860 T xhtmldbg::WinInterface::hasErrors()
    00006f40 T xhtmldbg::WinInterface::setSource(QUrl const&, QString const&)
    000074c0 T xhtmldbg::WinInterface::WinInterface(QDBusConnection const&, QObject*)
    000074c0 T xhtmldbg::WinInterface::WinInterface(QDBusConnection const&, QObject*)
    00007160 T xhtmldbg::WinInterface::~WinInterface()
    000070c0 T xhtmldbg::WinInterface::~WinInterface()
    000070c0 T xhtmldbg::WinInterface::~WinInterface()
    00005c20 T xhtmldbg::Plugger::findPlugin(QString const&)
    000058c0 T xhtmldbg::Plugger::findPlugins()
    00004260 T xhtmldbg::Plugger::qt_metacall(QMetaObject::Call, int, void**)
    000042c0 T xhtmldbg::Plugger::qt_metacast(char const*)
    00005d40 T xhtmldbg::Plugger::pluginsByType(QWidget*, xhtmldbg::PluginInfo::PluginType)
    0000ae18 D xhtmldbg::Plugger::staticMetaObject
    00005320 T xhtmldbg::Plugger::Plugger(QObject*)
    00005320 T xhtmldbg::Plugger::Plugger(QObject*)
    00005780 T xhtmldbg::Plugger::~Plugger()
    00005720 T xhtmldbg::Plugger::~Plugger()
    00005720 T xhtmldbg::Plugger::~Plugger()
    00003a60 T xhtmldbg::Interface::qt_metacall(QMetaObject::Call, int, void**)
    00003b00 T xhtmldbg::Interface::qt_metacast(char const*)
    0000ad00 D xhtmldbg::Interface::staticMetaObject
    00004040 T xhtmldbg::PluginInfo::metaObject() const
    00004600 T xhtmldbg::WinInterface::metaObject() const
    00004340 T xhtmldbg::Plugger::metaObject() const
    00003ba0 T xhtmldbg::Interface::metaObject() const
    0000ad10 V typeinfo for xhtmldbg::PluginInfo
    0000ae28 V typeinfo for xhtmldbg::WinInterface
    0000add4 V typeinfo for xhtmldbg::Plugger
    0000ac40 V typeinfo for xhtmldbg::Interface
    00007960 V typeinfo name for xhtmldbg::PluginInfo
    00007ca0 V typeinfo name for xhtmldbg::WinInterface
    00007978 V typeinfo name for xhtmldbg::Plugger
    000076ab V typeinfo name for xhtmldbg::Interface
    0000ad28 V VTT for xhtmldbg::PluginInfo
    0000ac58 V VTT for xhtmldbg::Interface
    0000ad40 V vtable for xhtmldbg::PluginInfo
    0000ae40 V vtable for xhtmldbg::WinInterface
    0000ade0 V vtable for xhtmldbg::Plugger
    0000ac60 V vtable for xhtmldbg::Interface
    00004020 T virtual thunk to xhtmldbg::PluginInfo::metaObject() const
    00003b80 T virtual thunk to xhtmldbg::Interface::metaObject() const
    00003d80 T virtual thunk to xhtmldbg::PluginInfo::qt_metacast(char const*)
    00003ae0 T virtual thunk to xhtmldbg::Interface::qt_metacast(char const*)
    00003e20 T virtual thunk to xhtmldbg::PluginInfo::qt_metacall(QMetaObject::Call, int, void**)
    00003a40 T virtual thunk to xhtmldbg::Interface::qt_metacall(QMetaObject::Call, int, void**)
    0000b178 A __bss_start
    0000b178 A _edata
    0000b180 A _end
    00007658 T _fini
    000032a4 T _init
    Geändert von undefined (04-11-2011 um 16:48 Uhr)
    mfg undefined
    --
    Undefined Behavior (undefiniertes Verhalten) bedeutet meistens etwas ungültiges.
    xhtml Debugger

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •