Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

14.07.2016, 11:30

DLLs/SOs und verschiedene Compiler(-versionen)

Hi, ich komme demnächst an den Punkt, an dem ich eine spielbare Demo meines Projekts veröffentlichen möchte. Dabei habe ich mir die Frage nach möglichen Problemquellen gestellt. An einigen Stellen liest man davon, dass es Probleme beim Mischen von Compilern bzw. Compilerversionen geben könnte.

Konkret: Ich verwende Clang zum Kompilieren meines Projekts. Die zugehörigen third-party DLLs/SOs sind aber u.U. nicht mit Clang gebaut. Hat jemand Erfahrung welche Kombinationen (Visual Studio vs. MinGW vs. Clang auf Windows, bzw. GCC vs. Clang auf Linux) Probleme machen und wie ich diese Probleme umgehen kann? Ich kann nur bis zu einem gewissen Grad meine Abhängigkeiten in das Projekt kompilieren - irgendwann stoße ich dann auf Sachen (wie z.B. OpenGL oder OpenAL), bei denen ich besser auf die im System installierten Bibliothekten zugreifen sollte.

Legend

Alter Hase

Beiträge: 731

Beruf: Softwareentwickler

  • Private Nachricht senden

2

15.07.2016, 09:00

Probleme gibt es bei einigen Operationen. Beispiel: Du allokierst einen Speicherblock in DLL A mit MSVC++ 2015 und gibt diesen Speicherblock in DLL B mit MSVC++ 2013 frei -> Crash. Das selbe mit Dateien. D.h. wildeste Kombinationen aus C++ Runtimes in einem Programm können funktionieren, das sehe ich jeden Tag auf meiner Arbeit. :wacko: Es kommt halt wie immer drauf an was man macht.

Privat versuche ich möglichst alles mit MSVC++ 2015 zu kompilieren. Wenn ich auf Systembibliotheken zugreife kann ich da natürlich nichts tun. Die muss ich nehmen wie sie kommen.
"Wir müssen uns auf unsere Kernkompetenzen konzentrieren!" - "Juhu, wir machen eine Farm auf!"

Netzwerkbibliothek von mir, C#, LGPL: https://sourceforge.net/projects/statetransmitt/