最近在Arch中安装C++编译环境,本以为直接 pacman -S cmake gdb 就能解决,结果在clion中配置环境时竟然提示cmake和gdb版本过高,只好去cmake和gdb官网下载了,cmake官网提供了二进制文件,找个目录解压一下即可直接调用。而gdb则需要自己编译了,这里选择的是gdb-10.1。
照例一通 ./configure、 make、 make install时,编译出错......
CXX nat/amd64-linux-siginfo.o
In file included from /usr/include/bits/sigstksz.h:24,
from /usr/include/signal.h:315,
from ../gnulib/import/signal.h:52,
from /ironwood1/sourceware-git/rawhide-gnulib/bld/../../worktree-gnulib/gdbserver/../gdb/nat/amd64-linux-siginfo.c:20:
../gnulib/import/unistd.h:663:3: error: #error "Please include config.h first."
663 | #error "Please include config.h first."
| ^~~~~
原因是因为glic-2.33引入的头文件发生变化,要解决这个问题,只需要打开 ./gdb-10.1/gdb/nat/amd64-linux-siginfo.c ,将
#include <signal.h>
#include "gdbsupport/common-defs.h"
修改为
#include "gdbsupport/common-defs.h"
#include <signal.h>
重新编译安装,问题解决。