我目前正在尝试使用 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;
根据我在这里找到的信息,问题是当我使用-std=c99
(使用gcc 6.2.1
)编译时,编译器无法识别sigaction
,因为它不在 C99 规范中。
有趣的是,当我在没有Score-P 的情况下编译时,我根本没有这个问题。但那是另一回事了。
说了这么多,我仍然需要检测这个程序。我也不关心便携性。而且我知道您不应该直接包含<bits/sigaction.h>
. 考虑到这一点,我仍然想知道:
我如何忽略
#error
一旦我尝试编译就会抛出的问题>为什么会存在这个错误?