建设银行企业银行网站打不开,前端网站开发项目经验,用js做的网站,福贸外贸论坛最初编译的是正点原子改过的Linux内核#xff0c;可能是版本问题#xff0c;一直报错#xff0c;无法成功编译。然后换成NXP官方Linux内核6.6版本#xff0c;初始编译虽然也报各种错#xff0c;但都是缺少库或相关工具#xff0c;全部安装后就可以成功编译出镜像了#… 最初编译的是正点原子改过的Linux内核可能是版本问题一直报错无法成功编译。然后换成NXP官方Linux内核6.6版本初始编译虽然也报各种错但都是缺少库或相关工具全部安装后就可以成功编译出镜像了人都麻了x_x 最后测来测去发现主要原因是gcc版本不对。之所以使用NXP最新的内核版本没有问题那是因为我的gcc编译器是14.0版本的与NXP这个6.6版本发布时间相距不远。一般来说要确保你下载的源码比你使用的gcc版本要新不然容易出现不兼容的问题。 如果你使用的是正点原子提供的linux内核源码那么就要确保你的gcc编译器版本低于7.5至于10.3、11.5、14都不行。确切地来说下面这个链接里面的编译器基本可用我用的是7.5版本的。
Linaro Releases 下面将分为两个部分【编译Linux内核】是正常步骤【报错历程】是我在错误使用gcc版本时遇到的问题只不过最后没能解决就不了了之了。 编译Linux内核 在gcc编译器版本正确的情况下初次编译
export ARCHarm
export CROSS_COMPILEarm-linux-gnueabihf-
make distclean
make imx_v7_deconfig
make -j16# 给虚拟机分配多少处理器就在-j后面加上多少数字-j后面最好不要空否则容易卡死系统崩溃 编译之后大概率会遇到一个yylloc重定义的问题解决办法很简单在/scripts/dtc目录下找到dtc-lexer.lex.c_shipped文件并把里面的对应变量定义YYLTYPE yylloc;前面加上extern。详情见博客编译linux内核时multiple definition of yylloc‘错误的解决方案 之后再编译就不会出现任何问题了。其中正点原子build.sh脚本里说用到gcc版本是5.3但我用上5.3后依旧会出现这个重定义的问题解决后就不会继续报错了。 如果你的gcc编译版本过新那么初次编译也会遇到这个问题只不过解决了这个后还会出现一堆不兼容问题。 正常情况下编译后会产生镜像文件如zImage如果编译最后没有产生镜像反而是突然停下了也没有报错提示。那么多半是因为并行编译导致使用单核编译再试一遍只有make没有“-j”这时会出现报错提示。 报错历程 下面是我遇到的部分报错历程这是在gcc版本过新14.0的情况下测试的。总之即便一步一步照着报错提示去查教程修改最后也难逃无法解决的链接问题
【1】fatal error: curses.h: No such file or directory
sudo apt-get install libncurses-dev
【2】出现多重定义的问题 我采用的是
编译itop4412 uboot失败提示multiple definition of yylloc‘ scripts/dtc/dtc-lexer.lex.o:(.bss0x0): first_编译提示genneric-asm-offsets.h-CSDN博客 【3】出现下面报错 LD crypto/crypto_hash.o LD crypto/cryptomgr.o LD crypto/built-in.o LD fs/ext4/ext4.o LD fs/ext4/built-in.o make: *** [Makefile:948: fs] Error 2 sudo apt-get install lzop安装上面库后报错减少了 LD fs/ext4/ext4.o LD fs/ext4/built-in.o make: *** [Makefile:948: fs] Error 2 【4】单独使用配置时出现下面问题 sudo apt-get install flex
sudo apt-get install bison
【5】 参考博客
【1】linux内核编译 fatal error: curses.h: 没有那个文件或目录解决办法
【2】解决Linux下交叉编译U-Boot源码时报‘multiple definition of yylloc‘‘的错误-CSDN博客
【3】Linux驱动开发环境搭建初次体验开发全流程必看_i.mx6ull编译环境是什么-CSDN博客
【5】Linux kernel 编译openssl/bio.h: No such file or directory openssl找不到