Bisher habe ich mich mit Libraries bestenfalls auf Windows-Ebene beschäftigt und da auch keine Probleme mit. Nun unterteile ich mein Framework, das ich bisher als Klassensammelsurium verwendet habe als mit denen ich Anwendungen zusammenge'steckt' habe, in unterschiedliche Libraries. Das funktioniert unter Linux soweit auch wunderbar. Unter Linux stoße ich aber auf Probleme:
Code: Alles auswählen
xin@trinity:~/xsd/de/xsd/core$ make
>>>> de/xsd/core/mem
>>>> de/xsd/core/primitive
>>>> de/xsd/core/string
>>>> de/xsd/core/string/wiki
>>>> de/xsd/core/type
>>>> de/xsd/core/unit
>>>> de/xsd/core/util
ld -shared -o ../../../lib/xsdcore.so ../../../obj/linux/de/xsd/core/mem/blocklist.o ../../../obj/linux/de/xsd/core/primitive/double.o ../../../obj/linux/de/xsd/core/primitive/uint.o ../../../obj/linux/de/xsd/core/string/lineendencoding.o ../../../obj/linux/de/xsd/core/string/path.o ../../../obj/linux/de/xsd/core/string/representation.o ../../../obj/linux/de/xsd/core/string/searchtoken.o ../../../obj/linux/de/xsd/core/string/stringtoken.o ../../../obj/linux/de/xsd/core/string/wikistring.o ../../../obj/linux/de/xsd/core/string/wiki/bold.o ../../../obj/linux/de/xsd/core/string/wiki/console.o ../../../obj/linux/de/xsd/core/string/wiki/headline.o ../../../obj/linux/de/xsd/core/string/wiki/italic.o ../../../obj/linux/de/xsd/core/string/wiki/linebreak.o ../../../obj/linux/de/xsd/core/string/wiki/link.o ../../../obj/linux/de/xsd/core/string/wiki/monospace.o ../../../obj/linux/de/xsd/core/string/wiki/plugin.o ../../../obj/linux/de/xsd/core/string/wiki/underline.o ../../../obj/linux/de/xsd/core/type/cloud.o ../../../obj/linux/de/xsd/core/type/parameter.o ../../../obj/linux/de/xsd/core/type/string.o ../../../obj/linux/de/xsd/core/type/timestamp.o ../../../obj/linux/de/xsd/core/type/unique.o ../../../obj/linux/de/xsd/core/type/url.o ../../../obj/linux/de/xsd/core/unit/unitcolor.o ../../../obj/linux/de/xsd/core/unit/unit.o ../../../obj/linux/de/xsd/core/util/bresenhamarray.o ../../../obj/linux/de/xsd/core/util/calendar.o ../../../obj/linux/de/xsd/core/util/debugmemory.o ../../../obj/linux/de/xsd/core/util/endian.o ../../../obj/linux/de/xsd/core/util/errorreport.o ../../../obj/linux/de/xsd/core/util/inquiry.o ../../../obj/linux/de/xsd/core/util/posture.o ../../../obj/linux/de/xsd/core/util/separators.o ../../../obj/linux/de/xsd/core/util/sequence.o ../../../obj/linux/de/xsd/core/util/xmljson.o ../../../obj/linux/de/xsd/core/util/xml.o --whole-archive
../../../obj/linux/de/xsd/core/mem/blocklist.o: In function `__static_initialization_and_destruction_0':
/usr/include/c++/4.7/iostream:75: undefined reference to `__dso_handle'
ld: ../../../obj/linux/de/xsd/core/mem/blocklist.o: relocation R_X86_64_PC32 against undefined hidden symbol `__dso_handle' can not be used when making a shared object
ld: final link failed: Bad value
make: *** [library] Error 1
Alle Objekte sind C++ Code. Als CCFlags sind angegeben:
Code: Alles auswählen
xin@trinity:~/xsd/de/xsd/core$ make showccflags
-DXSD_MYSQL_REQUIRED -fPIC -g -Wall -D DO_NOT_SIMPLIFY_OPERATORS -Wno-non-template-friend -pedantic -Wno-long-long -DXSD_OPENGL_REQUIRED -DXSD_MYSQL_REQUIRED -std=c++0x -D _LP64 -D VERSION_LINUX -std=c++11 -DXSD_GTK_REQUIRED -std=c++0x

Kennt jemand das Problem oder ist super fit im Shared-Object-Bauen? Fitter als ich würde mir fast schon reichen, ich mache das (bis auf eine Test-Lib) gerade zum ersten Mal. ^^