형식 잘림 오류로 처리되는 모든 경고를 억제하는 방법

형식 잘림 오류로 처리되는 모든 경고를 억제하는 방법

gcc 8.3.0을 사용하여 소스 코드를 빌드하려고 합니다.

root@eqx-sjc-engine2-staging:/usr/local/src# gcc --version
gcc (Debian 8.3.0-2) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

root@eqx-sjc-engine2-staging:/usr/local/src# 

다음 오류가 발생합니다.

libs/esl/fs_cli.c:1679:43: error: '%s' directive output may be truncated writing up to 1023 bytes into a region of size 1020 [-Werror=format-truncation=]
   snprintf(cmd_str, sizeof(cmd_str), "api %s\nconsole_execute: true\n\n", argv_command);    
libs/esl/fs_cli.c:1679:3: note: 'snprintf' output between 29 and 1052 bytes into a destination of size 1024
       snprintf(cmd_str, sizeof(cmd_str), "api %s\nconsole_execute: true\n\n", argv_command);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    cc1: all warnings being treated as errors
    make[2]: *** [Makefile:2693: fs_cli-fs_cli.o] Error 1
    make[2]: Leaving directory '/usr/local/src'
    make[1]: *** [Makefile:3395: all-recursive] Error 1
    make[1]: Leaving directory '/usr/local/src'
    make: *** [Makefile:1576: all] Error 2

아래와 같이 make를 실행해 보았습니다.

make -Wno-error=format-truncation

여전히 같은 문제가 발생합니다.

내 리눅스 버전은

root@eqx-sjc-engine2-staging:~# cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux buster/sid"
NAME="Debian GNU/Linux"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

어떻게 고치나요?

답변1

makefile에 따라 다음과 같은 것이 필요할 수 있습니다.

make CFLAGS="-Wno-error=format-truncation"

기본 Makefile 규칙과 가장 잘 작성된 Makefile은 CFLAGS사용되는 C 컴파일러의 옵션을 살펴봐야 합니다. 마찬가지로 C++ 컴파일러 및 링커에 CXXFLAGS 옵션을 제공 할 수 있습니다.LDFLAGS

답변2

./configure --enable-fatal-warnings=no

관련 정보