Debian系统编译binutils-2.43失败问题求助
编译binutils-2.43版本失败,gprofng组件出现C++语法编译错误
问题背景
在Debian Linux系统中按照binutils移植指南3.1节的步骤编译binutils-2.43版本时失败,尝试设置CC=g++和CC=clang均无法解决。编译2.34版本时无需额外选项即可成功,该问题仅出现在2.43版本。
最小复现步骤
- 下载binutils-2.43源码
- 解压源码包
- 进入binutils-2.43目录
- 创建并进入build目录
- 执行
../configure - 执行
make
执行的编译命令
/bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../../gprofng/libcollector -U_ASM -I.. -I../../../gprofng/libcollector -I../../../gprofng/libcollector/../common -I../../../gprofng/libcollector/../src -I../../../gprofng/libcollector/../../include -I../../bfd -I../../../gprofng/libcollector/../.. -Wall -Wno-nonnull-compare -g -O2 -MT libgp_collector_la-mmaptrace.lo -MD -MP -MF .deps/libgp_collector_la-mmaptrace.Tpo -c -o libgp_collector_la-mmaptrace.lo `test -f 'mmaptrace.c' || echo '../../../gprofng/libcollector/'`mmaptrace.c
报错信息
In file included from ../../../gprofng/libcollector/../src/elf.h:30, from ../../../gprofng/libcollector/mmaptrace.c:32: ../../../gprofng/libcollector/../src/Data_window.h:33:1: error: unknown type name ‘class’ 33 | class Data_window | ^~~~~ ../../../gprofng/libcollector/../src/Data_window.h:34:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token 34 | { | ^ In file included from ../../../gprofng/libcollector/../src/Emsg.h:25, from ../../../gprofng/libcollector/../src/elf.h:31: ../../../gprofng/libcollector/../src/vec.h:40:8: error: expected identifier or ‘(’ before string constant 40 | extern "C" | ^~~ ../../../gprofng/libcollector/../src/vec.h:75:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token 75 | template <class ITEM> void
内容的提问来源于stack exchange,提问作者promaxultra
相关产品推荐
相关产品推荐

