OggVorbis - selbst kompilieren (statisch)



  • Hallo!

    Da man sich die OggVorbis libs ja selbst kompilieren muss dachte ich mir ich mache das gleich statisch.
    Also alles runtergeladen und kompiliert. Dann die entstandenen Dateien (libogg_static.a, libvorbis_static.a, libvorbisenc_static.a, libvorbisfile_static.a) in mein lib Verzeichnis kopiert und gleich mal versucht sie zu verwenden. Ich habe sie einfach ganz normal gelink (so wie z. B. opengl32 oder SDL auch), allerdings beschwert er sich trotzdem über undefinierte Symbole:

    :: === SDLtest, Debug ===
    D:\Programme\Programmieren\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\libvorbisfile_static.a(vorbisfile.o):vorbisfile.c:(.text+0x4f):: undefined reference to `ogg_sync_reset'
    D:\Programme\Programmieren\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\libvorbisfile_static.a(vorbisfile.o):vorbisfile.c:(.text+0xf3):: undefined reference to `ogg_sync_pageseek'
    D:\Programme\Programmieren\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\libvorbisfile_static.a(vorbisfile.o):vorbisfile.c:(.text+0x146):: undefined reference to `ogg_sync_buffer'
    D:\Programme\Programmieren\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\libvorbisfile_static.a(vorbisfile.o):vorbisfile.c:(.text+0x17a):: undefined reference to `ogg_sync_wrote'
    D:\Programme\Programmieren\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\libvorbisfile_static.a(vorbisfile.o):vorbisfile.c:(.text+0x381):: undefined reference to `ogg_page_serialno'
    D:\Programme\Programmieren\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\libvorbisfile_static.a(vorbisfile.o):vorbisfile.c:(.text+0x42e):: undefined reference to `ogg_page_bos'
    D:\Programme\Programmieren\mingw\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\libvorbisfile_static.a(vorbisfile.o):vorbisfile.c:(.text+0x44f):: undefined reference to `ogg_page_serialno'
    

    usw.

    Kann mir jemand sagen was ich falsch mache? ^^

    lg, bloodycross



  • Nur so ne Vermutung.

    Versuch mal die Reihenfolge, in der Die Biliotheken gelinkt werden, zu ändern. Erst die libvorbisfile_static.a und dann die libogg_static.a.



  • Es funktioniert! 😃 Vielen Dank!

    Allerdings hätte ich noch eine Frage: Warum ist die Reihenfolge so wichtig?

    lg, bloodycross



  • bloodycross schrieb:

    Es funktioniert! 😃 Vielen Dank!

    Allerdings hätte ich noch eine Frage: Warum ist die Reihenfolge so wichtig?

    lg, bloodycross

    Gute Frage ^^

    Hat wohl was mit der vorgehensweise von LD zu tun. Die lib*.a-Dateien sind nichts anderes als Archive, die Objekt-Dateien (*.o) enthalten. Warscheinlich werden diese als eine Einheit betrachtet und zusammen in einem Rutsch bearbeitet. Warscheinlich merkt sich LD die schon verwendetetn Symbole nicht. Darum kann er die nicht mehr finden. Ob das so stimmt weis ich nicht.

    Wenn du dazu was findest, kannst du es ja schreiben. Würd mich auch mal interessieren 🙂



  • Ok, werd mich mal umsehen ob jemand was dazu weiß.
    Aber Danke für deine Hilfe, auf das wäre ich glaube nie gekommen. 😞

    lg, bloodycross



  • bloodycross schrieb:

    Ok, werd mich mal umsehen ob jemand was dazu weiß.

    Viel Erfolg.

    bloodycross schrieb:

    Aber Danke für deine Hilfe, auf das wäre ich glaube nie gekommen. 😞

    Ich hatte das Problem auch mal... Sehr böse... Hat mich bestimmt nen Tag gekostet, bis ich was im Internet gefunden hatte 😃


Anmelden zum Antworten