我目前正在尝试使用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>
这一事实。考虑到这一点,我仍然想知道:
如何在我尝试编译&gt;
#error
为什么会出现此错误?