全志Android源码内核新增配置编译报错解决
在linux内核配置时,会发现报各种各样的错,在使用过程中源码是没有问题的,就因为增加了某个功能,按理来说增减配置不会对系统有太大的影响,可能每个厂家维护的代码有自己的风格和差异。
下面还原这个报错:
执行make menuconfig后敲问号搜寻配置路径

我这里配置启用perf
重新编译会出现,这里出现很多需要配置的,如果不熟悉的话很难选择正确,因为官方已经针对方案进行了配置:
如果只敲回车不选择或者选择错了,最后编译如下,即使make clean也是一样的结果:

最终解决这个问题的关键是在内核路径执行make distclean,清除所有编译生成的结果,才会出现使用默认配置
最终编译成功:

下面分享一些linux编译容易出错的问题以及大致的解决思路:
在Linux环境下编译程序时,可能会遇到各种问题。以下是一些常见的Linux编译错误及其解决路径:
1. 头文件缺失或包含路径不正确:
问题表现**:编译器提示找不到某个头文件。
解决路径**:确保所有需要的头文件已安装,并通过`-I/path/to/includes`参数指定正确的包含路径。
2. 符号未定义:
问题表现:链接阶段出现`undefined reference to function XYZ`错误。
解决路径:检查是否遗漏了库文件的链接,使用`-llibraryname`选项链接所需的库(例如 `-lmylib`),同时可能需要 `-L/path/to/library` 来指定库文件所在目录。
3. 结构体、联合体等类型定义缺失:
问题表现:类似“sem_union存储大小未知”这样的错误。
解决路径:如果系统不再提供某个类型,需要按照文档或者源码要求自行定义这个类型。
4. C++相关问题:
缺少标准库包含:如没有包含`iostream`或`string`头文件。
命名空间问题:未使用`std::`前缀引用标准库对象。
编译器选择:使用`gcc`编译C++代码而不是`g++`,导致链接问题。
解决路径:确保正确包含头文件,使用适当命名空间,并用`g++`编译C++源文件。
5. 动态库查找路径问题:
问题表现:运行时找不到动态库。
解决路径:将动态库路径添加到`/etc/ld.so.conf`或设置环境变量`LD_LIBRARY_PATH`指向动态库所在的目录。
6. 内核模块编译问题:
内核配置不正确:编译内核模块时,需确保内核配置与模块匹配。
依赖性问题:确认驱动程序所需的内核特性已开启。
7. 编码格式问题:
源代码乱码:跨平台转移代码时,可能因编码格式不同造成乱码。
解决路径:统一源码文件的编码格式,例如在Linux下通常使用UTF-8编码。
8. 权限问题:
执行文件权限不足:无法启动服务或运行程序。
解决路径:检查用户和组权限,必要时以root身份或相应用户组重新安装或启动服务。
9. Makefile或构建脚本错误:
问题表现:make过程中报错,可能是依赖关系设置不当或命令行参数有误。
解决路径:审查并修正Makefile规则,确保编译命令和链接命令正确无误。
- 高压开关柜触头母排电缆接头电力测温解决方案:小体积+无需布线+户外防水
- GTC最大彩蛋!黄仁勋闪电出手,终结“龙虾”安全危机
- 南芯科技推出大带宽高精度集成式电流传感器SCS81XX系列
- 基于瑞萨R7FA2E1A72DFL MCU的智能空调伴侣方案(下)
- MOSFET热载流子效应退化测试解析
- 基于无线级联方案的 DMX512 灯光控制系统设计与实现
- 从20%到85%:室内钙钛矿利用效率跃升的关键——微光充电芯片
- 功率放大器在空气耦合超声波斜入射的钢板缺陷检测中的应用
- 一文看懂PCIe中断机制
- 光谱椭偏术在二维材料光学表征中的应用:从石墨烯到TMDs
- 智能建筑中的直流固变(DC-SST):面向800V直流配电系统的微型化设计与能效评估
- 天硕详解高可靠国产平台SSD的“可溯源”价值,70%的疑难故障与固件相关?
- 国民N32G435 MCU微控制器LED大灯电源驱动与控制方案
- 如何打造高可靠性连接器
- MWC2026:6G狂飙!华为、高通、英伟达等五大巨头,亮出哪些突破性技术
- 线性模组vs线性导轨:从结构到应用的全面差异解析