[QT] Alte Libs mit neuem Compiler
Verfasst: 20.09.2017, 08:08
Hallo Leute,
ich entwickle auf ARM mit einem GCC 7.2, der C++17 kann und davon mache ich auch heftigst Gebrauch. Nun muss ich auf dem PC eine GUI schreiben, die mit dem ARM-Code über USB interagiert. Dabei möchte ich Code vom Mikrocontroller wiederverwenden, ohne alles auf C++14 umändern zu müssen [Probleme sind z.B. fehlende typetraits usw].
Auf dem PC habe ich QT 5 mit einem MinGW-32-5.3 und der kann eben nur C++14. Mein Ziel ist es auf einen neueren GCC umzusteigen, namentlich MinGW-64-wasauchimmer mit einem GCC 7.1.
Die Kacke beginnt mit der Inkompatibilität der 5.3er-QT-Libs zum neuen 7.1er-Compiler. Ich bekomme prinzipiell alles compiliert, aber halt nicht gelinkt. Es hagelt undefined references - letztlich auch das, was ich auch erwarten würde. Nun kann ich aber sowohl beim Compilieren als auch beim Linken dem GCC mitteilen, dass ich -fabi-version=9 haben will, was der ABI vom GCC 5.3 entsprechen sollte.
Und jetzt kommts: es hilft nicht. Kann jemand sagen warum? [verstehe ich das ABI-konzept nicht?]
Als nächsten Schritt wollte ich besonders schlau sein: ich nehme den Linker des 5.3er GCCs und füttere ihm die .o-Files des GCC7.1, die mit -fabi-version=9 erstellt worden sind. Da stimmt aber wohl das File-Format nicht... hätte das klappen sollen, oder lacht du mich grade aus?
Weiß jemand, wie ich das mein compiliat kompatibel bekomme? (oder QT-Libs kompatibel zum 7.1er GCC herbekomme, ohne den ganzen Build-Prozess selbstmachen zu müssen, was bestimmt mit GCC 7.1 mangels in-haus-unterstützung herrlich zwecklos wird)
ich entwickle auf ARM mit einem GCC 7.2, der C++17 kann und davon mache ich auch heftigst Gebrauch. Nun muss ich auf dem PC eine GUI schreiben, die mit dem ARM-Code über USB interagiert. Dabei möchte ich Code vom Mikrocontroller wiederverwenden, ohne alles auf C++14 umändern zu müssen [Probleme sind z.B. fehlende typetraits usw].
Auf dem PC habe ich QT 5 mit einem MinGW-32-5.3 und der kann eben nur C++14. Mein Ziel ist es auf einen neueren GCC umzusteigen, namentlich MinGW-64-wasauchimmer mit einem GCC 7.1.
Die Kacke beginnt mit der Inkompatibilität der 5.3er-QT-Libs zum neuen 7.1er-Compiler. Ich bekomme prinzipiell alles compiliert, aber halt nicht gelinkt. Es hagelt undefined references - letztlich auch das, was ich auch erwarten würde. Nun kann ich aber sowohl beim Compilieren als auch beim Linken dem GCC mitteilen, dass ich -fabi-version=9 haben will, was der ABI vom GCC 5.3 entsprechen sollte.
Und jetzt kommts: es hilft nicht. Kann jemand sagen warum? [verstehe ich das ABI-konzept nicht?]
Als nächsten Schritt wollte ich besonders schlau sein: ich nehme den Linker des 5.3er GCCs und füttere ihm die .o-Files des GCC7.1, die mit -fabi-version=9 erstellt worden sind. Da stimmt aber wohl das File-Format nicht... hätte das klappen sollen, oder lacht du mich grade aus?
Weiß jemand, wie ich das mein compiliat kompatibel bekomme? (oder QT-Libs kompatibel zum 7.1er GCC herbekomme, ohne den ganzen Build-Prozess selbstmachen zu müssen, was bestimmt mit GCC 7.1 mangels in-haus-unterstützung herrlich zwecklos wird)