cfns.gperf:101:1: error: 'const char* libc_name_p(const char*, unsigned int)' redeclared inline 解决办法

最近编译 gcc-linaro-4.8-2014.04-final 时报了如下错误:

cfns.gperf: In function 'const char* libc_name_p(const char*, unsigned int)':
cfns.gperf:101:1: error: 'const char* libc_name_p(const char*, unsigned int)' redeclared inline with 'gnu_inline' attribute
cfns.gperf:26:14: note: 'const char* libc_name_p(const char*, unsigned int)' previously declared here
cfns.gperf: At global scope:
cfns.gperf:26:14: warning: inline function 'const char* libc_name_p(const char*, unsigned int)' used but never defined
Makefile:1058: recipe for target 'cp/except.o' failed

困扰许久,之后发现使用的编译用的cc是x86_64-linux-gnu-g++,
查看x86_64-linux-gnu-g++ 位置

# which x86_64-linux-gnu-g++
/usr/bin/x86_64-linux-gnu-g++
# ls -l /usr/bin/x86_64-linux-gnu-g++
lrwxrwxrwx 1 root root 7 Mar 28 09:58 /usr/bin/x86_64-linux-gnu-g++ -> g++-6

发现x86_64-linux-gnu-g++ 链接到了 g++ -6,这里应该要用g++ -4.8的,因为我的debian9 默认装的gcc-6,后来我又装了gcc-4.8 。但这里的x86_64-linux-gnu-g++ 链接忘记改了。

类似的 x86_64-linux-gnu-gcc,x86_64-linux-gnu-gcc-ar 这些也存在同样的问题,
解决办法:修改x86_64-linux-gnu-g++ ,x86_64-linux-gnu-gcc-ar …的链接指向4.8版本

这是我修改后的:

# ls -l /usr/bin/x86_64*
lrwxrwxrwx 1 root root       7 Mar  8  2018 /usr/bin/x86_64 -> setarch
-rwxr-xr-x 1 root root   27640 May 10  2017 /usr/bin/x86_64-linux-gnu-addr2line
-rwxr-xr-x 1 root root   60384 May 10  2017 /usr/bin/x86_64-linux-gnu-ar
-rwxr-xr-x 1 root root  861008 May 10  2017 /usr/bin/x86_64-linux-gnu-as
-rwxr-xr-x 1 root root   27224 May 10  2017 /usr/bin/x86_64-linux-gnu-c++filt
lrwxrwxrwx 1 root root       7 Mar 28 09:59 /usr/bin/x86_64-linux-gnu-cpp -> cpp-4.8
lrwxrwxrwx 1 root root       7 Dec 20  2014 /usr/bin/x86_64-linux-gnu-cpp-4.8 -> cpp-4.8
-rwxr-xr-x 1 root root  953112 Feb 15  2018 /usr/bin/x86_64-linux-gnu-cpp-6
-rwxr-xr-x 1 root root 2884312 May 10  2017 /usr/bin/x86_64-linux-gnu-dwp
-rwxr-xr-x 1 root root   31504 May 10  2017 /usr/bin/x86_64-linux-gnu-elfedit
lrwxrwxrwx 1 root root       7 Mar 28 09:58 /usr/bin/x86_64-linux-gnu-g++ -> g++-4.8
lrwxrwxrwx 1 root root       7 Dec 20  2014 /usr/bin/x86_64-linux-gnu-g++-4.8 -> g++-4.8
-rwxr-xr-x 1 root root  953112 Feb 15  2018 /usr/bin/x86_64-linux-gnu-g++-6
lrwxrwxrwx 1 root root       7 Mar 28 10:00 /usr/bin/x86_64-linux-gnu-gcc -> gcc-4.8
lrwxrwxrwx 1 root root       7 Dec 20  2014 /usr/bin/x86_64-linux-gnu-gcc-4.8 -> gcc-4.8
-rwxr-xr-x 1 root root  949016 Feb 15  2018 /usr/bin/x86_64-linux-gnu-gcc-6
lrwxrwxrwx 1 root root      10 Mar 28 10:00 /usr/bin/x86_64-linux-gnu-gcc-ar -> gcc-ar-4.8
lrwxrwxrwx 1 root root      10 Dec 20  2014 /usr/bin/x86_64-linux-gnu-gcc-ar-4.8 -> gcc-ar-4.8
-rwxr-xr-x 1 root root   27168 Feb 15  2018 /usr/bin/x86_64-linux-gnu-gcc-ar-6
lrwxrwxrwx 1 root root      10 Mar 28 10:00 /usr/bin/x86_64-linux-gnu-gcc-nm -> gcc-nm-4.8
lrwxrwxrwx 1 root root      10 Dec 20  2014 /usr/bin/x86_64-linux-gnu-gcc-nm-4.8 -> gcc-nm-4.8
-rwxr-xr-x 1 root root   27168 Feb 15  2018 /usr/bin/x86_64-linux-gnu-gcc-nm-6
lrwxrwxrwx 1 root root      14 Mar 28 10:01 /usr/bin/x86_64-linux-gnu-gcc-ranlib -> gcc-ranlib-4.8
lrwxrwxrwx 1 root root      14 Dec 20  2014 /usr/bin/x86_64-linux-gnu-gcc-ranlib-4.8 -> gcc-ranlib-4.8
-rwxr-xr-x 1 root root   27168 Feb 15  2018 /usr/bin/x86_64-linux-gnu-gcc-ranlib-6
lrwxrwxrwx 1 root root       8 Mar 28 10:02 /usr/bin/x86_64-linux-gnu-gcov -> gcov-4.8
lrwxrwxrwx 1 root root       8 Dec 20  2014 /usr/bin/x86_64-linux-gnu-gcov-4.8 -> gcov-4.8
-rwxr-xr-x 1 root root  520120 Feb 15  2018 /usr/bin/x86_64-linux-gnu-gcov-6
lrwxrwxrwx 1 root root      11 Mar 28 10:03 /usr/bin/x86_64-linux-gnu-gcov-dump -> gcov-dump-6
-rwxr-xr-x 1 root root  450416 Feb 15  2018 /usr/bin/x86_64-linux-gnu-gcov-dump-6
lrwxrwxrwx 1 root root      11 Apr  9  2017 /usr/bin/x86_64-linux-gnu-gcov-tool -> gcov-tool-6
-rwxr-xr-x 1 root root  475056 Feb 15  2018 /usr/bin/x86_64-linux-gnu-gcov-tool-6
-rwxr-xr-x 1 root root   98600 May 10  2017 /usr/bin/x86_64-linux-gnu-gprof
lrwxrwxrwx 1 root root       6 May 10  2017 /usr/bin/x86_64-linux-gnu-ld -> ld.bfd
-rwxr-xr-x 1 root root 1264968 May 10  2017 /usr/bin/x86_64-linux-gnu-ld.bfd
-rwxr-xr-x 1 root root 3109336 May 10  2017 /usr/bin/x86_64-linux-gnu-ld.gold
-rwxr-xr-x 1 root root   44888 May 10  2017 /usr/bin/x86_64-linux-gnu-nm
-rwxr-xr-x 1 root root  228552 May 10  2017 /usr/bin/x86_64-linux-gnu-objcopy
-rwxr-xr-x 1 root root  369024 May 10  2017 /usr/bin/x86_64-linux-gnu-objdump
lrwxrwxrwx 1 root root      34 Mar 14 11:01 /usr/bin/x86_64-linux-gnu-pkg-config -> /usr/share/pkg-config-crosswrapper
-rwxr-xr-x 1 root root   60416 May 10  2017 /usr/bin/x86_64-linux-gnu-ranlib
-rwxr-xr-x 1 root root  530344 May 10  2017 /usr/bin/x86_64-linux-gnu-readelf
-rwxr-xr-x 1 root root   31608 May 10  2017 /usr/bin/x86_64-linux-gnu-size
-rwxr-xr-x 1 root root   31776 May 10  2017 /usr/bin/x86_64-linux-gnu-strings
-rwxr-xr-x 1 root root  228560 May 10  2017 /usr/bin/x86_64-linux-gnu-strip
-rwxr-xr-x 2 root root   48016 May  1  2016 /usr/bin/x86_64-pc-linux-gnu-pkg-config

总结:
cfns.gperf:101:1: error: ‘const char* libc_name_p(const char*, unsigned int)’ redeclared inline with ‘gnu_inline’ attribute
原因可能是因为 x86_64-linux-gnu-g++ 版本不对,我这就是g++6不行,需要切到g++4.8.

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值