首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gcc std:-fpack-struct seg断层

gcc std:-fpack-struct seg断层
EN

Stack Overflow用户
提问于 2017-09-29 22:15:35
回答 1查看 661关注 0票数 6

考虑以下简单的c++程序

代码语言:javascript
复制
#include <iostream>
#include <regex>
int main(int argc, char * argv[])
{
    std::regex foobar( "[A]+");

    return 0;
}

使用-fpack-struct=1编译时,它会产生故障。

代码语言:javascript
复制
g++-5 -std=gnu++14 ./fpack_regex.cpp -fpack-struct=1 -o a.out && a.out
Segmentation fault (core dumped)

代码语言:javascript
复制
g++-5 -std=gnu++14 ./fpack_regex.cpp -o a.out && a.out

效果很好。

知道为什么=1选项会导致此失败吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-02 08:36:03

开关-fpack-结构可能非常危险。见gcc相关文件警告:

我看到的主要问题是,您的代码与标准库不兼容(通常不使用打包的结构进行编译),因此对它的调用(通过传输结构)可能会失败(实际上是这样)。

建议不要使用此开关包装所有结构,但如果需要包装结构,则只打包所需的结构。我还读到,重新编译libstd和/或lib与相同的fpack-struct可能有帮助,但这是一个风险很大的选项。

这里也有一些信息(关于fpack-struct的一个老gcc错误),它已经过时了,但可能有用:bug.cgi?id=14173

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46497591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档