4 Qt moc ab Boost 1.48

Versucht man in einem Qt Projekt eine aktuelle Boost Version einzubinden, wird man schnell feststellen, dass der Qt moc-Compiler nicht durch die Header von Boost kommt.

.../boost/mpl/if.hpp(131): Warning: Macro argument mismatch.
.../boost/mpl/eval_if.hpp(67): Warning: Macro argument mismatch.
.../boost/mpl/void.hpp(71): Warning: Macro argument mismatch.
.../boost/mpl/begin_end.hpp(52): Warning: Macro argument mismatch.
.../boost/mpl/negate.hpp(52): Warning: Macro argument mismatch.
...
*snip*
...NMAKE : fatal error U1077: 'C:\Qt\5.2.0\msvc2012\bin\moc.exe' : return code '0xc0000005'
Stop.

Der moc-Compiler aus Qt 5.2 erzeugt statt Fehler nur noch Warnings, werden davon genug erzeugt, bricht das Tool trotzdem mit einem Fehler ab.

Es bleibt zur Zeit nur der Workaround, die Boost-Includes vor dem Moc-Compiler zu verstecken.

Beispiel:


#ifndef Q_MOC_RUN
#  include <boost/serialization.h>
#endif

Will man ein bestehendes Qt-Projekt auf eine neue Boost Version heben, ist es natürlich sehr mühselig den Include-Guard überall im Code einzufügen.
Mit den RegExp-Ersetzen von Sublime Text kann dies mit folgenden Ausdrücken automatisiert werden.

 Find: ((\n#include <boost/[^\n]+)+)
 Replace: \n#ifndef Q_MOC_RUN\1\n#endif

Wir haben in unserem Branch von QxORM bei Github die notwendigen Anpassungen bereits umgesetzt.

←zurück
23.06.2022

<a href="https://www.ivermectinoge.com/#">stromectol price us</a> buy ivermectin 6mg

28.06.2022

online pharmacy <a href="https://pharmacyclined.com/%20">corner drug store</a> https://pharmacyclined.com/

29.06.2022

generic ivermectin https://ivermectinuni.com/

01.07.2022

bulk tadalafil powder <a href="https://tadalafilise.com/%20">how long does it take for tadalafil to work</a> https://tadalafilise.com/

kommentieren




Wieviel Enden hat die Wurst? (Zahl)

© 2012 – 2022 HicknHack Software GmbH | Impressum | Datenschutzerklärung