zoukankan      html  css  js  c++  java
  • unrecognized command line option ‘-Wimplicit-fallthrough=3’

      编译PG插件时,报"unrecognized command line option ‘-Wimplicit-fallthrough=3’"。

      关于implicit-fallthrough选项:

      As of GCC 7-Wimplicit-fallthrough is supported and __attribute__((fallthrough)) can be used to suppress the warnings when fallthrough is intentional. GCC does recognize "fallthrough" comments in certain scenarios, but it can be confused fairly easily.

      而编译用的是gcc (GCC) 4.8.5,且没有地方指定了该选项。

      唯一原因就是pg本身使用gcc 7编译的,可通过pg_config来确定编译用的选项。

    [zjh@lightdb1 zhparser-0.2.0]$ pg_config 
    BINDIR = /home/zjh/pgsql13.2/bin
    DOCDIR = /home/zjh/pgsql13.2/share/doc
    HTMLDIR = /home/zjh/pgsql13.2/share/doc
    INCLUDEDIR = /home/zjh/pgsql13.2/include
    PKGINCLUDEDIR = /home/zjh/pgsql13.2/include
    INCLUDEDIR-SERVER = /home/zjh/pgsql13.2/include/server
    LIBDIR = /home/zjh/pgsql13.2/lib
    PKGLIBDIR = /home/zjh/pgsql13.2/lib
    LOCALEDIR = /home/zjh/pgsql13.2/share/locale
    MANDIR = /home/zjh/pgsql13.2/share/man
    SHAREDIR = /home/zjh/pgsql13.2/share
    SYSCONFDIR = /home/zjh/pgsql13.2/etc
    PGXS = /home/zjh/pgsql13.2/lib/pgxs/src/makefiles/pgxs.mk
    CONFIGURE =  '--prefix=/home/zjh/pgsql13.2' '--enable-depend' '--enable-cassert' '--enable-debug' 'CFLAGS=-DLOCK_DEBUG -DBTREE_BUILD_STATS -DWAL_DEBUG -DCATCACHE_STATS -ggdb -O0' '--enable-dtrace' '--enable-nls=gbk' '--with-openssl' '--with-libxml' '--with-zlib' '--with-llvm' 'LLVM_CONFIG=/opt/rh/llvm-toolset-7/root/usr/bin/llvm-config' '--enable-profiling'
    CC = gcc
    CPPFLAGS = -D_GNU_SOURCE -I/usr/include/libxml2
    CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -g -pg -DLINUX_PROFILE -DLOCK_DEBUG -DBTREE_BUILD_STATS -DWAL_DEBUG -DCATCACHE_STATS -ggdb -O0
    CFLAGS_SL = -fPIC
    LDFLAGS = -L/opt/rh/llvm-toolset-7/root/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/home/zjh/pgsql13.2/lib',--enable-new-dtags
    LDFLAGS_EX = 
    LDFLAGS_SL = 
    LIBS = -lpgcommon -lpgport -lpthread -lxml2 -lssl -lcrypto -lz -lreadline -lrt -ldl -lm 
    VERSION = PostgreSQL 13.2

      遗憾的是,没有pg_config选项可以修改其配置。

      所以,要么用gcc 4.8.5重新编译pg,要么切换到7.3.1和pg_config的配置一致,例如llvm,可以从别的环境拷贝一个过来。

      4.8.5重新编译后的选项如下:

    [zjh@lightdb1 postgresql-13.2]$ pg_config 
    BINDIR = /home/zjh/pgsql13.2/bin
    DOCDIR = /home/zjh/pgsql13.2/share/doc
    HTMLDIR = /home/zjh/pgsql13.2/share/doc
    INCLUDEDIR = /home/zjh/pgsql13.2/include
    PKGINCLUDEDIR = /home/zjh/pgsql13.2/include
    INCLUDEDIR-SERVER = /home/zjh/pgsql13.2/include/server
    LIBDIR = /home/zjh/pgsql13.2/lib
    PKGLIBDIR = /home/zjh/pgsql13.2/lib
    LOCALEDIR = /home/zjh/pgsql13.2/share/locale
    MANDIR = /home/zjh/pgsql13.2/share/man
    SHAREDIR = /home/zjh/pgsql13.2/share
    SYSCONFDIR = /home/zjh/pgsql13.2/etc
    PGXS = /home/zjh/pgsql13.2/lib/pgxs/src/makefiles/pgxs.mk
    CONFIGURE =  '--prefix=/home/zjh/pgsql13.2'
    CC = gcc -std=gnu99
    CPPFLAGS = -D_GNU_SOURCE
    CFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2
    CFLAGS_SL = -fPIC
    LDFLAGS = -Wl,--as-needed -Wl,-rpath,'/home/zjh/pgsql13.2/lib',--enable-new-dtags
    LDFLAGS_EX = 
    LDFLAGS_SL = 
    LIBS = -lpgcommon -lpgport -lpthread -lz -lreadline -lrt -ldl -lm 
    VERSION = PostgreSQL 13.2

    重新编译就不报错了。

  • 相关阅读:
    Cocos2d JS 之消灭星星(二) 工具类开发
    Cocos2d JS 之消灭星星(三) 进入游戏过渡场景
    Cocos2d JS 之本地存储(localStorage)
    Cocos2d JS 之消灭星星(—) 游戏初始化场景的建立
    小程序的1024KB
    小程序来了(下篇)
    小程序来了(上篇)
    那些年,让我们一起着迷的Spring
    小程序之信息触手可及
    史诗手册!微信小程序新手自学入门宝典!
  • 原文地址:https://www.cnblogs.com/zhjh256/p/15230679.html
Copyright © 2011-2022 走看看