为什么我不应该包含<bits sigaction.h =“”>,当我这样做时如何忽略错误?

时间:2017-01-06 17:27:21

标签: c gcc c99 sigaction

我目前正在尝试使用Score-P分析工具来测试SPEC OMP 2012基准测试套件的一部分,并且我收到了错误消息。具体来说:

/XXX/imagick/src/magick_magick.c: In function ‘SetMagickSignalHandler’:
/XXX/imagick/src/magick_magick.c:1137:20: error: storage size of ‘action’ isn’t known
    struct sigaction action, previous_action;

根据我发现here的信息,问题是当我使用-std=c99进行编译时(使用gcc 6.2.1),编译器不会将sigaction识别为它不在C99规范中。

有趣的是,当我编译而没有 Score-P时,我根本就没有这个问题。但这是另一个故事。

所有这一切,我仍然需要检测这个程序。我也不关心便携性。我知道您不应该直接包含<bits/sigaction.h>这一事实。考虑到这一点,我仍然想知道:

  1. 如何在我尝试编译&gt;

  2. 后立即忽略被引发的#error
  3. 为什么会出现此错误?

0 个答案:

没有答案