GCC 和 clang 上的 MSVC /Zp 替代方案是啥?

Posted

技术标签:

【中文标题】GCC 和 clang 上的 MSVC /Zp 替代方案是啥?【英文标题】:What is MSVC /Zp alternative on GCC and clang?GCC 和 clang 上的 MSVC /Zp 替代方案是什么? 【发布时间】:2015-06-23 15:40:19 【问题描述】:

如果,我想在模块级别使用编译器标志定义结构对齐,例如 Windows 上的 cl 的 /Zp。 GCC和clang上有哪些替代方案?

【问题讨论】:

【参考方案1】:

gcc -v --help 给出:

-fpack-struct               Pack structure members together without holes
-fpack-struct=<number>      Set initial maximum structure member alignment

clang 具有相同的开关(至少 clang 3.x)。

【讨论】:

在 msdn for Zp 上,提到“在 8 字节边界上打包结构(默认)。”这是否意味着如果存在大小> 8 字节的数据类型,默认情况下它不会自然对齐,而是将具有 8 字节对齐。如果是,那么 GCC/clang 是否属于这种情况? @AbhishekJain 抱歉我不知道

以上是关于GCC 和 clang 上的 MSVC /Zp 替代方案是啥?的主要内容,如果未能解决你的问题,请参考以下文章

功能无法匹配GLDEBUGPROC,仅在MSVC上(使用相同的glew版本2.1.0,在linux上使用gcc / clang就可以了)

gcc 和 clang 抛出“没有匹配的函数调用”但 msvc (cl) 编译并按预期工作

当重载具有多重继承的函数时,GCC称调用它是不明确的,但Clang和MSVC不这样做

GCC C++14/17 成员函数指针模板参数的区别

cmake:让mingw(gcc)生成MSVC可用的dll(.lib)----mark亲测有效

Clang如何处理MSVC的编译参数