Seite 1 von 1

Xerces C++ unter QT 3.0.1 und Win7

Verfasst: 21. März 2014 12:16
von Perhalo
Hi,

ich versuche in der Uni bei einem Projekt den Xerces C++ XML Parser zu verwenden. Leider stoße ich beim kompilieren des Testprogramms auf diverse Linkerprobleme, die ich einfach auch trotz vieler Anstrengungen nicht gelöst bekomme.

Code: Alles auswählen

QT       += core

QT       -= gui

TARGET = Parser_test
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp

INCLUDEPATH += C:/Xerces/xerces-c-3.1.1/src

LIBS += -L$$PWD/../../../Xerces/xerces-c-3.1.1/src/.libs/ -l xerces-c

Code: Alles auswählen

#include <QCoreApplication>
#include <stdio.h>
#include <xercesc\util\PlatformUtils.hpp>

using namespace xercesc;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    try {
      XMLPlatformUtils::Initialize();
    }
    catch (const XMLException& toCatch) {
      // Do your failure processing here
      return 1;
    }

    // Do your actual work with Xerces-C++ here.

    XMLPlatformUtils::Terminate();

    return a.exec();
}

Fehler:

Code: Alles auswählen

12:06:31: Führe Schritte für Projekt Parser_test aus...
12:06:31: Unveränderte Konfiguration, qmake-Schritt wird übersprungen.
12:06:31: Starte "C:\Qt\Tools\mingw48_32\bin\mingw32-make.exe" 
C:\Qt\5.2.1\mingw48_32\bin\qmake.exe -spec win32-g++ CONFIG+=debug CONFIG+=declarative_debug CONFIG+=qml_debug -o Makefile ..\Parser_test\Parser_test.pro
C:/Qt/Tools/mingw48_32/bin/mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory 'C:/Users/sittel/build-Parser_test-Desktop_Qt_5_2_1_MinGW_32bit-Debug'
g++ -Wl,-subsystem,console -mthreads -o debug\Parser_test.exe debug/main.o  -LC:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs/ -l xerces-c -LC:\Qt\5.2.1\mingw48_32\lib -lQt5Cored 
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DefaultPanicHandler.o): In function `ZN11xercesc_3_119DefaultPanicHandler5panicENS_12PanicHandler12PanicReasonsE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/DefaultPanicHandler.cpp:35: undefined reference to `__getreent'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XMemory.o): In function `ZN11xercesc_3_17XMemorynwEjPNS_13MemoryManagerE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMemory.cpp:63: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XMemory.o): In function `ZN11xercesc_3_17XMemorydlEPv':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMemory.cpp:88: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XMemory.o): In function `ZN11xercesc_3_17XMemorydlEPvPNS_13MemoryManagerE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMemory.cpp:98: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XMLString.o): In function `ZN11xercesc_3_19XMLString9textToBinEPKwRjPNS_13MemoryManagerE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMLString.cpp:1419: undefined reference to `__errno'
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMLString.cpp:1433: undefined reference to `__errno'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XMLString.o): In function `ZN11xercesc_3_19XMLString8parseIntEPKwPNS_13MemoryManagerE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMLString.cpp:1455: undefined reference to `__errno'
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMLString.cpp:1468: undefined reference to `__errno'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(IconvTransService.o): In function `ZN11xercesc_3_118IconvLCPTranscoder16calcRequiredSizeEPKcPNS_13MemoryManagerE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp:238: undefined reference to `__locale_mb_cur_max'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(PosixFileMgr.o): In function `ZN11xercesc_3_112PosixFileMgr11getFullPathEPKwPNS_13MemoryManagerE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/FileManagers/PosixFileMgr.cpp:193: undefined reference to `realpath'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMDocumentImpl.o): In function `ZN11xercesc_3_119RefHash2KeysTableOfINS_10KeyRefPairIvNS_18DOMUserDataHandlerEEENS_9PtrHasherEE14findBucketElemEPKviRj':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/RefHash2KeysTableOf.c:447: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMDocumentImpl.o): In function `ZN11xercesc_3_119RefHash2KeysTableOfINS_10KeyRefPairIvNS_18DOMUserDataHandlerEEENS_9PtrHasherEE9removeKeyEPKvi':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/RefHash2KeysTableOf.c:153: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMDocumentImpl.o): In function `ZN11xercesc_3_119RefHash2KeysTableOfINS_10KeyRefPairIvNS_18DOMUserDataHandlerEEENS_9PtrHasherEE9removeKeyEPKv':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/RefHash2KeysTableOf.c:205: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMDocumentImpl.o): In function `ZN11xercesc_3_119RefHash2KeysTableOfINS_10KeyRefPairIvNS_18DOMUserDataHandlerEEENS_9PtrHasherEE15transferElementEPKvPv':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/RefHash2KeysTableOf.c:295: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMDocumentImpl.o): In function `ZN11xercesc_3_119DOMDeepNodeListPoolINS_19DOMDeepNodeListImplENS_9PtrHasherEE14findBucketElemEPKvPKwS7_Rj':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/dom/impl/DOMDeepNodeListPool.c:363: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMDocumentImpl.o):/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/RefHash2KeysTableOf.c:511: more undefined references to `__assert_func' follow
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XSValue.o): In function `ZN11xercesc_3_17XSValue21getActualNumericValueEPKwRNS0_6StatusERNS0_7t_valueEPNS_13MemoryManagerENS0_8DataTypeE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/framework/psvi/XSValue.cpp:1569: undefined reference to `__errno'
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/framework/psvi/XSValue.cpp:1606: undefined reference to `__errno'
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/framework/psvi/XSValue.cpp:1662: undefined reference to `__errno'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XSValue.o): In function `ZN11xercesc_3_116ValueHashTableOfINS_7XSValue8DataTypeENS_12StringHasherEE14findBucketElemEPKvRj':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/ValueHashTableOf.c:276: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XSValue.o): In function `ZN11xercesc_3_116ValueHashTableOfINS_7XSValue8DataTypeENS_12StringHasherEE6rehashEv':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/ValueHashTableOf.c:246: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(ComplexTypeInfo.o): In function `ZN11xercesc_3_119RefHash2KeysTableOfINS_12SchemaAttDefENS_12StringHasherEE6rehashEv':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/RefHash2KeysTableOf.c:511: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(ComplexTypeInfo.o): In function `ZN11xercesc_3_119RefHash2KeysTableOfINS_12SchemaAttDefENS_12StringHasherEE14findBucketElemEPKviRj':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/RefHash2KeysTableOf.c:447: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMNodeImpl.o): In function `ZNK11xercesc_3_111DOMNodeImpl16getOwnerDocumentEv':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/dom/impl/DOMNodeImpl.cpp:172: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMNodeImpl.o):/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/dom/impl/DOMNodeImpl.cpp:165: more undefined references to `__assert_func' follow
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(UnixHTTPURLInputStream.o): In function `ZN11xercesc_3_122UnixHTTPURLInputStreamD2Ev':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:251: undefined reference to `shutdown'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(UnixHTTPURLInputStream.o): In function `ZN11xercesc_3_122UnixHTTPURLInputStream4sendEPKcj':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:261: undefined reference to `send'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(UnixHTTPURLInputStream.o): In function `ZN11xercesc_3_122UnixHTTPURLInputStream7receiveEPcj':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:271: undefined reference to `recv'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(UnixHTTPURLInputStream.o): In function `ZN11xercesc_3_122UnixHTTPURLInputStreamC2ERKNS_6XMLURLEPKNS_14XMLNetHTTPInfoE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:135: undefined reference to `getaddrinfo'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(UnixHTTPURLInputStream.o): In function `ZN11xercesc_3_113SocketJanitor5resetEPi':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:70: undefined reference to `shutdown'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(UnixHTTPURLInputStream.o): In function `ZN11xercesc_3_122UnixHTTPURLInputStreamC2ERKNS_6XMLURLEPKNS_14XMLNetHTTPInfoE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:146: undefined reference to `socket'
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:150: undefined reference to `connect'
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:158: undefined reference to `freeaddrinfo'
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:139: undefined reference to `getaddrinfo'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(UnixHTTPURLInputStream.o): In function `ZN11xercesc_3_113SocketJanitor5resetEPi':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:70: undefined reference to `shutdown'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(UnixHTTPURLInputStream.o): In function `ZN11xercesc_3_122UnixHTTPURLInputStreamC2ERKNS_6XMLURLEPKNS_14XMLNetHTTPInfoE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp:152: undefined reference to `freeaddrinfo'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMTypeInfoImpl.o): In function `ZNK11xercesc_3_115DOMTypeInfoImpl18getNumericPropertyENS_15DOMPSVITypeInfo12PSVIPropertyE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/dom/impl/DOMTypeInfoImpl.cpp:150: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMTypeInfoImpl.o): In function `ZN11xercesc_3_115DOMTypeInfoImpl18setNumericPropertyENS_15DOMPSVITypeInfo12PSVIPropertyEi':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/dom/impl/DOMTypeInfoImpl.cpp:178: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMTypeInfoImpl.o): In function `ZNK11xercesc_3_115DOMTypeInfoImpl17getStringPropertyENS_15DOMPSVITypeInfo12PSVIPropertyE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/dom/impl/DOMTypeInfoImpl.cpp:135: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMTypeInfoImpl.o): In function `ZN11xercesc_3_115DOMTypeInfoImpl17setStringPropertyENS_15DOMPSVITypeInfo12PSVIPropertyEPKw':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/dom/impl/DOMTypeInfoImpl.cpp:164: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(StringPool.o): In function `ZN11xercesc_3_113XMLStringPool9serializeERNS_16XSerializeEngineE':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/StringPool.cpp:158: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(ReaderMgr.o):/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/internal/ReaderMgr.cpp:443: more undefined references to `__assert_func' follow
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XMLAbstractDoubleFloat.o): In function `ZN11xercesc_3_122XMLAbstractDoubleFloat7convertEPc':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMLAbstractDoubleFloat.cpp:451: undefined reference to `__errno'
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMLAbstractDoubleFloat.cpp:462: undefined reference to `__errno'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(XMLDateTime.o): In function `ZNK11xercesc_3_111XMLDateTime10fillStringERPwij':
/cygdrive/c/xerces/xerces-c-3.1.1/src/xercesc/util/XMLDateTime.cpp:1774: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(SchemaAttDefList.o): In function `ZN11xercesc_3_119RefHash2KeysTableOfINS_12SchemaAttDefENS_12StringHasherEE14findBucketElemEPKviRj':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/RefHash2KeysTableOf.c:447: undefined reference to `__assert_func'
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/RefHash2KeysTableOf.c:447: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMLSParserImpl.o): In function `ZNK11xercesc_3_116ValueHashTableOfINS_17DOMLSParserFilter12FilterActionENS_9PtrHasherEE14findBucketElemEPKvRj':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/ValueHashTableOf.c:296: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMLSParserImpl.o): In function `ZNK11xercesc_3_116ValueHashTableOfIjNS_12StringHasherEE11containsKeyEPKv':
/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/ValueHashTableOf.c:296: undefined reference to `__assert_func'
C:/Users/sittel/Parser_test/../../../Xerces/xerces-c-3.1.1/src/.libs//libxerces-c.a(DOMLSParserImpl.o):/cygdrive/c/xerces/xerces-c-3.1.1/src/./xercesc/util/ValueHashTableOf.c:296: more undefined references to `__assert_func' follow
collect2.exe: error: ld returned 1 exit status
Makefile.Debug:77: recipe for target 'debug\Parser_test.exe' failed
mingw32-make[1]: *** [debug\Parser_test.exe] Error 1
mingw32-make[1]: Leaving directory 'C:/Users/sittel/build-Parser_test-Desktop_Qt_5_2_1_MinGW_32bit-Debug'
makefile:34: recipe for target 'debug' failed
mingw32-make: *** [debug] Error 2
12:06:35: Der Prozess "C:\Qt\Tools\mingw48_32\bin\mingw32-make.exe" wurde mit dem Rückgabewert 2 beendet.
Fehler beim Erstellen/Deployment des Projekts Parser_test(Kit: Desktop Qt 5.2.1 MinGW 32bit)
Bei der Ausführung von Schritt 'Make'
Bin über jede Hilfe dankbar :-)

Grüße

Re: Xerces C++ unter QT 3.0.1 und Win7

Verfasst: 21. März 2014 17:11
von Christian81
Da dies nichts mit Qt zu tun hat -> C++ Grundlagen.
Eine (google)Suche nach der fehlenden Funktion hilft ggf. - hast Du xerces selbst gebaut oder wo kommt die Library her?

Re: Xerces C++ unter QT 3.0.1 und Win7

Verfasst: 24. März 2014 08:35
von Perhalo
Hallo,

diese Fehler habe ich schon länger über google gesucht und immer wieder andere und mich nicht weiterbringende Lösungen gefunden.

Ich hab den Source-Code von Xerces der Seite geladen und über cygwin mit configure und make erstellt.

Mir würde auch schon helfen, wenn mir jemand sagen könnte wo die Fehler herkommen, falls man das so einfach sehen kann. Dann könnte ich besser nach einer Lösung suchen.

Grüße

Re: Xerces C++ unter QT 3.0.1 und Win7

Verfasst: 24. März 2014 12:42
von dazedly
Sieht so aus, als würdest du nicht gegen die benutzte lib linken.