Objektdateien verschiedener Compiler linken



  • Hi All,
    ist es möglich mit Bloodshed Dev C++ ein Executeable zu erzeugen wenn eine der Objektdateien mit Visual C++ Express erzeugt wurde?
    Gruß Ronny



  • In der Regel funktioniert das nicht, da beim Linken Symbole (interne Bezeichner für Variable, Funktionen, Sektionen ...) erzeugt werden und diese Compiler-spezifisch sind.



  • Bloodshed C++ sollte inzwischen forenweit zensiert werden... um dennoch darauf einzugehen: Klar geht das, aber du musst dir bewusst sein, was du tust. Wenn du es hinbekommst, dass alle Compiler Object-Files im gleichen Format erzeugen, kannst du theoretisch einen Linker benutzen, welcher alle Object-Files frisst und daraus ein Binary erzeugt.

    Ich habe z.B. auch nasm (Netwide Assembler) so konfiguriert, dass er zu Visual C++ x64 kompatibel wurde. In der Praxis darfst du aber keine Wunder erwarten. Klassen und Objekte gehen in der Regel rauchen, ausser du magst extrem komplexe Linker-Skripte (Kategorie A: C++ im Kernel. Kategorie B: C++ mit verschiedenen Compilern ;)). Was du verwenden kannst sind dann Funktionen mit extern "C" , aber dann ist dann schon bald Ende Feuer.

    :xmas1:



  • /rant/ schrieb:

    Bloodshed C++ sollte inzwischen forenweit zensiert werden... um dennoch darauf einzugehen: Klar geht das, aber du musst dir bewusst sein, was du tust. Wenn du es hinbekommst, dass alle Compiler Object-Files im gleichen Format erzeugen, kannst du theoretisch einen Linker benutzen, welcher alle Object-Files frisst und daraus ein Binary erzeugt.

    Ich habe z.B. auch nasm (Netwide Assembler) so konfiguriert, dass er zu Visual C++ x64 kompatibel wurde. In der Praxis darfst du aber keine Wunder erwarten. Klassen und Objekte gehen in der Regel rauchen, ausser du magst extrem komplexe Linker-Skripte (Kategorie A: C++ im Kernel. Kategorie B: C++ mit verschiedenen Compilern ;)). Was du verwenden kannst sind dann Funktionen mit extern "C" , aber dann ist dann schon bald Ende Feuer.

    Vergiss es.



  • ... was ich mich am meisten Frage, ist wozu das jmd. brauchen könnte???


Anmelden zum Antworten