gpt4 book ai didi

Coverity Scan 无法使用定义的 _GNU_SOURCE 构建

转载 作者:太空狗 更新时间:2023-10-29 15:31:21 29 4
gpt4 key购买 nike

Coverity Scan 构建工具无法编译任何包含 <stdlib.h> 的 C 文件在 Ubuntu 18.04 上 _GNU_SOURCE定义:

$ cat > main.c
#include <stdlib.h>
int main() {
}
$
$ gcc -D_GNU_SOURCE=1 -o main main.c
$
$ /opt/cov-analysis/bin/cov-build --dir cov-int gcc -D_GNU_SOURCE=1 -o main main.c
Coverity Build Capture (64-bit) version 2017.07 on Linux 4.15.0-20-generic x86_64
...
[WARNING] Emitted 0 C/C++ compilation units (0%) successfully
...
$

相同的构建在 Ubuntu 16.04 或没有 _GNU_SOURCE 的情况下都能完美运行定义:

$ /volatile/local/cov-analysis/bin/cov-build --dir cov-int gcc -o main main.c 
Coverity Build Capture (64-bit) version 2017.07 on Linux 4.15.0-20-generic x86_64
...
Emitted 1 C/C++ compilation units (100%) successfully
...
$

如何使用 Coverity Scan 来构建 C 源代码 _GNU_SOURCE在 Ubuntu 18.04 上定义?

对于那些感兴趣的文件 cov-int/build-log.txt 可以在这里找到:
https://gist.github.com/DimitriPapadopoulos/0dcd9018eed26401cc6095087d9cc1d5

最佳答案

联系 Coverity 支持后,这似乎是一个已知错误。他们建议我通过从默认的 Ubuntu 18.04 编译器 (GCC 7) 切换到以前的版本 (GCC 6) 来解决这个问题:

sudo apt install gcc-6

确实 _Float32_Float32x_Float64_Float64x_Float128introduced in GCC 7 .

关于Coverity Scan 无法使用定义的 _GNU_SOURCE 构建 <stdlib.h>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50434236/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com