【问题标题】:Error compiling coreutils - error: function might be candidate for attribute 'const' [-Werror=suggest-attribute=const]编译 coreutils 时出错 - 错误:函数可能是属性“const”的候选者 [-Werror=suggest-attribute=const]
【发布时间】:2020-09-23 03:28:04
【问题描述】:

我尝试在 Ubuntu 18.4 上编译 coreutils。这是我到目前为止所做的:

sudo apt install bison gperf make textinfo

git clone git://git.sv.gnu.org/coreutils

cd coreutils

./bootstrap

./configure

make

这以错误结尾:

lib/acl-internal.c: In function 'free_permission_context':
lib/acl-internal.c:479:1: error: function might be candidate for attribute 'const' [-Werror=suggest-attribute=const]
 free_permission_context (struct permission_context *ctx)
 ^~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
Makefile:9808: recipe for target 'lib/acl-internal.o' failed
make[2]: *** [lib/acl-internal.o] Error 1
make[2]: Leaving directory '/path/to/coreutils'
Makefile:12445: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/path/to/coreutils'
Makefile:6556: recipe for target 'all' failed
make: *** [all] Error 2

【问题讨论】:

    标签: linux gcc gnu-make gnu-coreutils


    【解决方案1】:

    它认为这里发生的是:

    1. 编译器(配置)警告潜在的(性能)问题。
    2. 构建 (make) 将所有警告作为错误处理。

    见: https://bug-coreutils.gnu.narkive.com/q14Ima4F/bug-32762-bug-at-coreutils-compile


    可能的解决方法

    1.禁止configure

    处的警告
    ./configure --disable-gcc-warnings
    

    2。不要将make的某些警告视为错误

    make CFLAGS='-Wno-error=suggest-attribute=const'
    

    This post 列出了一些附加选项:

    我建议使用:

     -Wno-error=suggest-attribute=pure
     -Wno-error=suggest-attribute=const
     -Wno-error=suggest-attribute=noreturn
     -Wno-error=suggest-attribute=format
     -Wno-error=suggest-attribute=cold
     -Wno-error=suggest-attribute=malloc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-16
      • 2012-03-14
      • 1970-01-01
      • 2018-05-20
      • 2020-04-12
      • 2017-03-11
      • 1970-01-01
      • 2013-06-23
      相关资源
      最近更新 更多