| c-stack.c:55:26: error: missing binary operator before token “(“ 55 | #elif HAVE_LIBSIGSEGV && |
解决方法:
| wget https://raw.githubusercontent.com/keyfour/openwrt/2722d51c5cf6a296b8ecf7ae09e46690403a6c3d/tools/m4/patches/011-fix-sigstksz.patch -O tools/m4/patches/011-fix-sigstksz.patch |
| elf.hpp:52:56: error: ISO C++17 does not allow dynamic exception specifications |
原因是g++版本较高,可以通过修改tools/mklibs/Makefile
,添加HOST_CPPFLAGS += -std=gnu++98
,指定使用的C++的标准,不过我处理到这一步时,感觉后面还会有类似的编译器版本过高导致的问题,降编译器版本才是一劳永逸的。lede-17.01我在ubuntu20.04上验证过没啥编译问题,有也打过一些补丁了。所以把ubuntu22.04的编译器降到和ubuntu20.4一样。ubuntu22.04上的是11版本,ubuntu20.04上的是9版本。使用下面的脚本来实现:
| #!/bin/bash |
| |
| apt install gcc-9 g++-9 |
| |
| BINS+=" x86_64-linux-gnu-cpp" |
| BINS+=" x86_64-linux-gnu-g++" |
| BINS+=" x86_64-linux-gnu-gcc" |
| BINS+=" x86_64-linux-gnu-gcc-ar" |
| BINS+=" x86_64-linux-gnu-gcc-nm" |
| BINS+=" x86_64-linux-gnu-gcc-ranlib" |
| BINS+=" x86_64-linux-gnu-gcov" |
| BINS+=" x86_64-linux-gnu-gcov-dump" |
| BINS+=" x86_64-linux-gnu-gcov-tool" |
| BINS+=" gcc" |
| BINS+=" g++" |
| BINS+=" cpp" |
| BINS+=" gcc-ar" |
| BINS+=" gcc-nm" |
| BINS+=" gcc-ranlib" |
| BINS+=" gcov" |
| BINS+=" gcov-dump" |
| BINS+=" gcov-tool" |
| |
| for b in $BINS;do |
| update-alternatives --install /usr/bin/$b $b /usr/bin/$b-9 50 |
| update-alternatives --install /usr/bin/$b $b /usr/bin/$b-11 30 |
| done |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2023-06-13 关于Qt **QNetworkAccessManager**、**QNetworkReply**、**QNetworkRequest**实现ftp下载时,**QNetworkReply**::**downloadProgress**信号的**bytesTotal**一直为-1的原因分析
2023-06-13 使用clion进行远程调试