问题
我有一个在 Visual Studio 2005 中制作的 Qt 应用程序,它使用了大量其他库,这些库都以 1 的结构成员对齐方式编译。我也很确定 Qt 默认使用 0 的结构成员对齐方式。
当我使用结构成员对齐为 0(其他库将失败)或 1(Qt 将失败)编译我的应用程序时,这显然会导致问题。
我试过的
projects.pro 文件中的编译器标志
- 我下载了Qt的源代码。
我在 projects.pro 文件的顶部添加了以下内容
QMAKE_CXXFLAGS_DEBUG += -Zp1 QMAKE_CXXFLAGS_RELEASE += -Zp1
我使用 Visual Studio 命令行启动了创建 makefile 的 configure.exe。
- 我启动了nmake,然后编译Qt。
这会导致 Qt 以 0 的结构成员对齐方式进行编译。也许编译器无法识别 -Zp1(我也尝试过 /Zp1),但这会让我感到惊讶,因为这是 Visual Studio 在其属性页中使用它的方式:
makefile 中的编译器标志
现在正在考虑做同样的事情:
- 下载 Qt 的源代码。
- 在 Visual Studio 命令行中运行 configure.exe。
此时我有了可以更改的生成文件,以便它可以使用 1 的结构成员对齐。这里没有成功。
我的问题
我如何为 Visual Studio 2005 编译 Qt,结构成员对齐为 1?