
ubunt版本是17.6.2的,安装了ncurses库,使用工具链arm-linux-guneabihf

ubunt版本是17.6.2的,安装了ncurses库,使用工具链arm-linux-guneabihf
关注让【宝码香车】来帮你解答,本回答参考DeepSeek编写,并整理提供。
如果还有疑问可以点击头像关注私信或评论。如果答案让您满意,请采纳、点赞、关注,非常感谢!
若您愿意支持,欢迎直接打赏,将不胜感激!
这个问题是由于系统中存在多个版本的libfdt库导致函数重定义错误。从错误信息来看,主要有两个冲突的libfdt头文件:
tools/../include/libfdt.h (U-Boot自带的版本)/usr/include/libfdt.h (系统安装的版本)⚠️ 主要原因:系统安装了libfdt-dev或相关包,导致编译时同时包含了U-Boot自带的libfdt和系统安装的libfdt,造成函数重定义。
sudo apt-get remove libfdt-dev
然后清理并重新编译:
make distclean
make <your_config>
make -j$(nproc)
如果无法卸载系统libfdt,可以尝试修改编译环境:
export C_INCLUDE_PATH=$(pwd)/include
make distclean
make <your_config>
make -j$(nproc)
CFLAGS += -I$(srctree)/include
确保使用的是正确的交叉编译工具链:
export CROSS_COMPILE=arm-linux-gnueabihf-
make distclean
make <your_config>
make -j$(nproc)

arm-linux-gnueabihf-gcc --version
sudo apt-get install build-essential bison flex libssl-dev
如果问题仍未解决,可以提供更详细的错误日志和你的编译配置(如使用的defconfig文件)。