Nominate our 2022 Qt Champions!

Compiling Qt with Struct Member Alignment of one (/Zp1)

  • I have a Qt project which uses a few other libraries made by the company i work for. A struct member alignment of one is used for every library and project in our system. I don't know the details but it is something hardware related.

    I managed to compile qtmain, QtCore and QtGui (the only ones i use) with a Struct Member Alignment of one. But when I build and run my project (which also has the /Zp1 flag) it runs into an assert in qmutex.h -> 'QMutex pointer is misaligned'. After some searching I found that QMutex can only be used with a Struct Member Alignment of 2 or 4. I tried to solve this issue with:
    #pragma pack(push, 2)
    // the QMutex class
    #pragma pack(pop)

    Still the assert is false.

    Version: Qt 4.8.4.
    IDE: Visual Studio 2005.

    Am I approaching this wrong or is changing the struct member alignment blasphemy?

Log in to reply