编译Linux内核的错误汇总

合集下载

编译内核遇到错误的办法

编译内核遇到错误的办法

我要编译的版本号是2.6.28.7只修改了Makefile里的ARCH 和CROSS1.ERROR:"__bad_udelay"[sound/pci/ali5451/snd-ali5451.ko]2.3.ERROR:"__bad_udelay"[drivers/video/savage/savagefb.ko]4.5.ERROR:"__bad_udelay"[drivers/scsi/atp870u.ko]6.7.ERROR:"__bad_udelay"[drivers/net/sungem.ko]8.9.ERROR:"__bad_udelay"[drivers/atm/he.ko]10.11.make[1]:***[__modpost]错误 112.13.make:***[modules]错误 2解决问题首先要确定问题,然后整理思路。

想一想,这些都是一些不认识的驱动啊,我们很可能不需要这些驱动的。

那么我们就去掉它们好了。

它们从哪里来?肯定是配置项选中了,也许是默认的吧。

那么我们可以去make menuconfig来把他们去掉,但不熟悉的朋友肯定会很烦那堆配置菜单。

如果知道menuconfig的原理,我们可以知道各个子目录下的Makefile正是构成配置菜单的东西。

我们也可以找这些来改。

首先在内核源码根目录下用配置菜单搜索make menuconfigdevice drivers -->network device support-->enthernet (10 or 100Mbit)-->Sun GEM support选项去掉。

可以解决sungem.ko的错误。

其余用命令搜索find -name "Makefile"|xargs grep "xxx"xxx为上面报错的驱动模块名称,注意,不要搜snd-ali5451.ko,而是搜snd-ali5451.o其实,出现这个问题,很多时候是我们没有先用一个默认配置,如:make smdk2410_config ,导致默认的配置菜单有些配置和实际源码有差别。

Linux报错情况汇总

Linux报错情况汇总

Linux报错汇总1. 命令输入错误,shell无法正确解释错误解释为:命令未被发现2. 命令正确,但是没有键入参数错误解释为:丢失文件操作数(参数)3. 命令正确,但是选项错误错误解释为:无效的选项,如果加入选项的话,可以选择-L和-P4. 定义变量值,但是调用变量的方式不正确,系统认为是命令而无法执行错误解释为:命令未被发现5. 创建文件或目录的时候,如果创建的文件名和现有文件相同,则无法执行错误解释为:不能创建目录‘wnt’:文件已存在6. 删除文件的时候得保证该文件的名称正确,否则无法执行错误解释为:没有这样的文件或目录7. 对磁盘进行分区的时候,如果设备文件名称错误,则无法执行错误解释为:无法打开/dev/sdb8. 未在文件系统中设置磁盘配额的支持就做磁盘配额错误解释为:没有用来进行配额检测的文件系统9. 创建物理卷的磁盘分区没有创建错误解释为:设备/dev/sdb1没有被发现(或者被滤除而忽略)10. 创建卷组的时候没有指定卷组的名称错误解释为:/dev/sdb1:已经存在了文件系统,新卷组名称“sdb1”无效11. 指定卷组PE的时候出现错误错误解释为:广度范围必须是2的幂,设定明确的卷组设置格式‘wnt’失败12. 从卷组中删除物理卷的时候出错错误解释为:物理卷“/dev/sdb3”未在卷组“wnt”中发现13. 扩展卷组的时候出错错误解释为:/dev/sdb5未被定义为一个存在的物理卷,无法将物理卷‘/dev/sdb5’加入卷组‘wnt’中14. 查看网卡配置信息的时候指定的网卡设备名称不正确错误解释为:eth1:错误的引用了接口信息:设备未被发现15. 创建用户的时候如果用户已经存在,无法实现用户的添加错误解释为:useradd:用户a已经存在(如果是组的话也是这样的报错)16. Apache中虚拟主机错误错误解释为:配置文件/etc/httpd/conf/httpd.conf第984行的索引错误,<VirtualHost>没有关闭17. 如果对于目录没有执行权限,则会有下列错误错误解释为:权限不够18. 删除组的时候,如果该组还是其他用户的主要组,则不允许删除该组错误解释为:不能移除用户的主要组19. 普通用户修改其他用户密码的时候无法执行,会出现下列错误错误解释为:passwd:只有root用户可以指定一个用户名20. 安装软件包的时候和卸载软件包的时候需要注意依存关系错误解释为:失败的依存关系,还没有安装bind-9.3.3-7.el5,这是被caching-nameserver-9.3.-7.el5.i386这个软件需要的软件包错误解释为:失败的依存关系,还没有卸载caching-nameserver-9.3.3-7.el5.i386,这个软件还需要依靠的软件包bind-9.3.3-7.el5而存在21. 卸载软件包的时候,应该输入软件名,而不应该带有版本号和平台号错误解释为:错误:软件包caching-nameserver-9.3.3-7.el5.i386.rpm没有被安装22.。

linux编程中会出现的错误

linux编程中会出现的错误

linux编程中会出现的错误1、错误提示1.ERROR: Kernel configuration is invalid.2. include/linux/autoconf.h or include/config/auto.conf aremissing.3. Run 'make oldconfig && make prepare' on kernel src to fix it.解决方法在自己的linux内核目录下运行make oldconfig && make prepare2、错误提示挂载时会报错“permission denied“解决方法这一步“服务器端在文件/etc/exports中设定允许被访问的文件、目录以及访问的权限”修改/etc/exports 文件,添加如下内容/opt/nfs *(rw,sync,no_root_squash,no_all_squash)(不同的人可能挂在的目录不同)运行以下命令启动nfs 服务:Host #/usr/sbin/exportfs –aHost #/sbin/service nfs restart3、错误提示mach/regs-gpio.h 找不到这个文件解决方法利用make menuconfig将内核CPU版本配成S3C2410,然后make config 最后make zImage,在编译就不会有问题了。

(得出结论:要编译2410的模块驱动文件,内核源码目录必须跟其一致,也配成2410的编译源码,要是配成6410则不行。

当然编译6410的模块文件,则必须将源码目录配成6410。

)4、错误提示led_driver: version magic '2.6.30.4 mod_unload modversions ARMv4 ' should be '2.6.30.4-GTStudio mod_unload ARMv4 ' insmod: cannot insert 'led_driver.ko': invalid module format 解决方法是由于编译器的版本不同和make menuconfig 配置时,在配置单中添加如下信息General setup --->Prompt for development and/or incomplete code/drivers(-EmbedSky(填上自己的模块名称)) Local version - append to kernel release内核版本的差异导致的。

在linux下利用程序崩溃后的core文件分析bug(转载)

在linux下利用程序崩溃后的core文件分析bug(转载)

当我们的程序崩溃时,内核有可能把该程序当前内存映射到core文件里,方便程序员找到程序出现问题的地方。

最常出现的,几乎所有C程序员都出现过的错误就是“段错误”了。

也是最难查出问题原因的一个错误。

下面我们就针对“段错误”来分析core文件的产生、以及我们如何利用core文件找到出现崩溃的地方。

何谓core文件当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。

core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。

当程序接收到以下UNIX信号会产生core文件:在系统默认动作列,“终止w/core”表示在进程当前工作目录的core文件中复制了该进程的存储图像(该文件名为core,由此可以看出这种功能很久之前就是UNIX功能的一部分)。

大多数UNIX 调试程序都使用core文件以检查进程在终止时的状态。

core文件的产生不是POSIX.1所属部分,而是很多UNIX版本的实现特征。

UNIX第6版没有检查条件(a)和(b),并且其源代码中包含如下说明:“如果你正在找寻保护信号,那么当设置-用户-ID命令执行时,将可能产生大量的这种信号”。

4.3 + BSD产生名为core.prog的文件,其中prog是被执行的程序名的前1 6个字符。

它对core文件给予了某种标识,所以是一种改进特征。

表中“硬件故障”对应于实现定义的硬件故障。

这些名字中有很多取自UNIX早先在DP-11上的实现。

请查看你所使用的系统的手册,以确切地确定这些信号对应于哪些错误类型。

下面比较详细地说明这些信号。

? SIGABRT 调用abort函数时产生此信号。

进程异常终止。

? SIGBUS 指示一个实现定义的硬件故障。

? SIGEMT 指示一个实现定义的硬件故障。

EMT这一名字来自PDP-11的emulator trap 指令。

? SIGFPE 此信号表示一个算术运算异常,例如除以0,浮点溢出等。

? SIGILL 此信号指示进程已执行一条非法硬件指令。

LINUX-2.6内核移植过程中常见问题及解决方法

LINUX-2.6内核移植过程中常见问题及解决方法

LINUX-2.6内核移植过程中常见问题及解决方法1、内核启动后,出现如下提示后停住UNCOMPRESSING LINUX........................................................... DONE, BOOTING THE KERNEL一般情况下,这个时候内核已经启动了,只不过在控制台CONSOLE中没有打印信息而已。

所以问题主要锁定在串口这一块。

首先确定你的板子包括硬件都是没有问题的。

可以分以下几种情况,最常见的原因是在内核启动命令行这块CMDLINE,一般情况下LINUX-2.4内核中,CONSOLE=TTYS0,而LINUX-2.6内核则用CONSOLE=TTYSAC0。

还有一个原因,不多见,我当时用的是S3C2410的板子,BOOTLOADER用的是U-BOOT-1.0.0,内核移植的是LINUX-2.6.16,结果出现这个问题,在网上查了很多资料,最后找出来问题。

U-BOOT把S3C2410的时钟设置为202MHZ,而内核启动时使用的是200MHZ,修改U-BOOT中的MPLLCON:CLK_POWER->MPLLCON MPLLCON = 0X0005C040;//MPLL=200MHZ2、内核编译成功后,启动后出现如下提示后就停住了。

FREEING INIT MEMORY: 72KWARNING: UNABLE TO OPEN AN INITIAL CONSOLE.这个也是控制台CONSOLE的问题,LINUX-2.6.13以后的内核都支持DEVFS,而之后版本的内核就把DEVFS这块去掉了,虽然还能在内核源码中找到对应的源码,你也可以把它加进内核,但是也不是太好用。

2.6.13 后的版本改为支持UDEV了,UDEV这块我也没太弄懂,正在研究。

因此如果你是LINUX-2.6.13版本一下的内核,编译的时候在PSEUDO FILESYSTEMS添加DEV FILESYSTEM SURPPORT选项,也就是添加DEVFS的支持,如果LINUX-2.6.13之后的版本,你就看看你的ROOTFS下有没有/DEV/CONSOLE这个文件,没有的话,自己做一个就可以#MKNOD CONSOLE C 5 13、内核启动后,打印出一大堆提示信息UNABLE TO HANDLE KERNEL XXXX POINTER DEREFERENCE AT VIRTUAL ADDRESS XXXXXX ……R10: 00000000 R9 : 00000000 R8 : 00500001R7 : 00000001 R6 : C011AB50 R5 : C3726C00 R4 : C013E024R3 : 00000000 R2 : 00000000 R1 : 00000000 R0 : C3726C00….<0>KERNEL PANIC - NOT SYNCING: ATTEMPTED TO KILL INIT!这个提示是内核启动加载驱动时出错,那就只有找到出错的驱动,不加载它,如果必须要用这个驱动,只有自己修改源代码,一般问题都在对硬件的地址操作有问题。

Linux系统编译安装常见错误处理方法

Linux系统编译安装常见错误处理方法

5.Configure: error: libjpeg.(a|so) not found
# yum install libjpeg libjpeg-devel
6.Configure: error: libpng.(also) not found.
# yum install libpng libpng-devel
13.Configure: error: Cannot find ldap.h
# yum install openldap-devel
本篇文章来源于 Linux公社网站() 原文链接:/Linux/2011-04/34622.htm
再php:~/:./configure …… --with-gd=/usr/local/gd2 ……
1) Configure: error: xml2-config not found. Please check your libxml2 installation.
Solutions :
Solutions :
Quote: # yum install unixODBC-devel
12) Configure: error: Cannot find pspell
Solutions :
Quote: # yum install pspell-devel
13) configure: error: mcrypt.h not found. Please reinstall libmcrypt.
7) Configure: error: freetype.h not found.
Solutions :
Quote: #yum install freetype-devel

Linux内核编译及常见错误实验报告

Linux内核编译及常见错误实验报告

***学生实验报告一、实验目的(1)学习重新编译Linux内核的方法(2)理解Linux标准内核和发行版本内核的区别。

二、实验内容在Linux系统中下载同一发行版本的版本号较高的内核,编译之后运行自己编译的内核,并使用uname-r命令查看是否运行成功。

由于不同版本的内核在编译过程中可能出现不同的问题,本书推荐的内核版本为4.16.10。

从第7章开始的进阶实验篇,都可以选用该版本的内核。

三、实验设备Vmware上运行的linux ubuntu 5.11.0-43-generic实验成功:linux ubuntu 4.18.0-generic(Ubuntu18.04均可)实验成功的方法在最后四、实验过程和原理分析一、实验(一)准备工作:在这里我建议用一个全新的虚拟机,避免编译错误对原来常使用的虚拟机造成不可逆的影响,安装好后就先安装gcc、make等工具首先下载好Linux***内核文件解压至/usr/src 目录下,如下:确认安装好gcc、make等工具,后可直接运行命令sudo make menuconfig进行查看内核功能是否需要编译,如果遇到如下错误可以运行命令sudo apt bison 或sudo apt-get install fiex bison命令解决错误:解决:(不建议)(强烈建议)除此之外还可以直接运行,上一条命令解决不了就用下面这个:sudo apt-get install --reinstall bison libbison-dev flex libfl-dev解决上述错误(强烈建议)运行完上述命令后再次输入sudo make menuconfig便正常进入如下:见到这个界面后无需任何多余操作,使用键盘方向键选择<Save>回车再回车即可此时.config文件生成成功.config文件是隐藏文件记得加参数-a此外还有一个方法就是用cp 命令从原有系统的内核复制.config文件过来也可以命令:sudo cp /boot/config- 5.11.0-43-generic ./.config(二)编译内核为了避免多线程编译时同时出现过多错误,我们这里一开始只使用单线程编译在这里除了用make编译还可以用make-kpkg等工具,个人比较喜欢用make-kpkg但课本用make所以我接下来的实验也先用make完成。

Linux内核模块编译出错:ER...

Linux内核模块编译出错:ER...

Linux内核模块编译出错:ER...嵌⼊式Linux简单内核模块的编程:将以下hello.c和Makefile⽂件放在同⼀⽬录,然后make⼀下⽣成hello.ko⽂件hello.c的内容:#include "linux/module.h"#include "linux/init.h"static int __init hellomodule_init(void) //模块初始化函数{printk("Hello_init! Are you ok ? oLHHo \n");return 0;}static void __exit hellomodule_exit(void) //模块退出函数{printk("Hello_exit! Oh_Yes!");return 0;}module_init(hellomodule_init);module_exit(hellomodule_exit);MODULE_LICENSE("GPL");⼀个简单的内核模块主要由4个部分组成:包含头⽂件、实现内核模块初始化函数和模块退出函数、使⽤module_init 和module_exit 宏指定模块初始化函数和模块退出函数、声明模块license为"GPL",这4个部分是⼀个模块必需的,也就构成了内核模块的框架。

Makefile的内容:ifneq ($(KERNELRELEASE),)obj-m := hello.oelseKDIR :=/home/olhho/opt/linux-2.6.30.9 #⾃⼰编译的内核的存放路径all:make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-clean:rm -f *.ko *.o *.mod.o *.mod.c *.symvers modul*endifobj-m:为内核顶层⽬录Makefile⽂件中使⽤的变量,表⽰要编译成模块的⽬标⽂件。

linux系统下uboot、kernel、android文件系统编译错误整理及解决办法

linux系统下uboot、kernel、android文件系统编译错误整理及解决办法

linux系统下uboot、kernel、android文件系统编译错误整理及解决办法Ver1.0作成者:雷鹏作成年月:2012/09/251、linux下编译应用程序时出现如下错误: /usr/bin/ld: cannot find -lxxx。

原因分析:编译过程找不到对应库文件。

其中,-lxxx表示链接库文件 libxxx.so。

由于库文件是编译过程临时生成的,如果前面编译过程出错也会导致出现这种情况,下面针对本机系统环境缺失而引起的错误进行分析。

一般出现这种错误有以下几种原因:⑴.系统缺乏对应的库文件;⑵.版本不对应;⑶.库文件的链接错误;⑷.库文件路径设置问题。

解决方法:对应第一第二种情况,可以通过下载安装lib来解决,ubuntu系统可以直接通过apt-get来安装:apt-get install libxxx-dev如果还是不能解决问题,那么,引起错误的原因不是链接错误就是库文件路径问题。

通过find或者locate指令定位到链接文件,查看链接文件是否正确的指向了编译需要的lib,如果不是,用下列指令修改它。

ln -sf */libxxx.so.x */libxxx.so如果是库文件路径引发的问题,可以到/etc/ld.so.conf.d目录下,修改其中任意一份conf文件,(可以自建conf,以方便识别)将lib所在目录写进去,然后在终端输入 ldconfig 更新缓存。

2、编译时出现错误提示:include/asm is a directory but a symlink was expected原因分析:linux/include/asm 文件夹是内核编译过程中创建的,创建结果就是一个指向文件夹asm-arm 的链接,表明该系统的平台是arm架构的,而编译系统内核之前,是没有asm这个链接的,所以,在编译过程中,创建该链接时文件名字与asm文件夹的名字发生冲突,于是系统报错了。

1.编译内核模块遇到的问题

1.编译内核模块遇到的问题

1.编译内核模块遇到的问题问题:使⽤内核包编译驱动时常常提⽰如下:WARNING: Symbol version dump /usr/src/linux-2.6.26/Module.symversis missing; modules will have no dependencies and modversions.原因:通常头核⼼包中是没有Module.symvers这个⽂件的,要想获取这个⽂件只能到下载相同版本核⼼(2.6.26-1-686)的头⽂件,是下载不是apt-get install ,只有下载的头⽂件中才有这个Module.symvers。

把Module.symvers 复制到核⼼包中,然后执⾏如下步骤:make oldconfig && make prepare && make scripts。

然后重新编译驱动,将解决这个warning,同时也解决了版本不正确的问题我不知道有多少⼈会碰上这样的问题,反正google中我发现没有⼈能说明⽩这个问题ps:我遇到的问题是则是运⾏:make -C /usr/src/linux-2.6.34-12 SUBDIRS=$PWD modules出错如下:make: Entering directory `/usr/src/linux-2.6.34-12'ERROR: Kernel configuration is invalid.include/generated/autoconf.h or include/config/auto.conf are missing.Run 'make oldconfig && make prepare' on kernel src to fix it.WARNING: Symbol version dump /usr/src/linux-2.6.34-12/Module.symversis missing; modules will have no dependencies and modversions.scripts/Makefile.build:44: /usr/src/linux-2.6.34-12/PWD/Makefile: No such file or directorymake[1]: *** No rule to make target `/usr/src/linux-2.6.34-12/PWD/Makefile'. Stop.make: *** [_module_PWD] Error 2make: Leaving directory `/usr/src/linux-2.6.34-12'运⾏:make oldconfig && make prepare再次出错如下:make: Entering directory `/usr/src/linux-2.6.34-12'WARNING: Symbol version dump /usr/src/linux-2.6.34-12/Module.symversis missing; modules will have no dependencies and modversions.CC [M] /home/xxx/test/dr/drhello.oBuilding modules, stage 2.MODPOST 1 modules/bin/sh: scripts/mod/modpost: No such file or directorymake[1]: *** [__modpost] Error 127make: *** [modules] Error 2make: Leaving directory `/usr/src/linux-2.6.34-12'加上:make scripts可以了make: Entering directory `/usr/src/linux-2.6.34-12'WARNING: Symbol version dump /usr/src/linux-2.6.34-12/Module.symversis missing; modules will have no dependencies and modversions.CC [M] /home/xxx/test/dr/drhello.oBuilding modules, stage 2.MODPOST 1 modulesCC /home/test/dr/drhello.mod.oLD [M] /home/test/dr/drhello.komake: Leaving directory `/usr/src/linux-2.6.34-12'。

Linux内核错误码大全

Linux内核错误码大全

#define ENOANO 55 /* No anode */#define EBADRQC 56 /* Invalid request code */#define EBADSLT 57 /* Invalid slot */#define EDEADLOCK EDEADLK#define EBFONT 59 /* Bad font file format */#define ENOSTR 60 /* Device not a stream */#define ENODATA 61 /* No data available */#define ETIME 62 /* Timer expired */#define ENOSR 63 /* Out of streams resources */#define ENONET 64 /* Machine is not on the network */#define ENOPKG 65 /* Package not installed */#define EREMOTE 66 /* Object is remote */#define ENOLINK 67 /* Link has been severed */#define EADV 68 /* Advertise error */#define ESRMNT 69 /* Srmount error */#define ECOMM 70 /* Communication error on send */#define EPROTO 71 /* Protocol error */#define EMULTIHOP 72 /* Multihop attempted */#define EDOTDOT 73 /* RFS specific error */#define EBADMSG 74 /* Not a data message */#define EOVERFLOW 75 /* Value too large for defined data type */#define ENOTUNIQ 76 /* Name not unique on network */#define EBADFD 77 /* File descriptor in bad state */#define EREMCHG 78 /* Remote address changed */#define ELIBACC 79 /* Can not access a needed shared library */#define ELIBBAD 80 /* Accessing a corrupted shared library */#define ELIBSCN 81 /* .lib section in a.out corrupted */#define ELIBMAX 82 /* Attempting to link in too many shared libraries */#define ELIBEXEC 83 /* Cannot exec a shared library directly */#define EILSEQ 84 /* Illegal byte sequence */#define ERESTART 85 /* Interrupted system call should be restarted */#define ESTRPIPE 86 /* Streams pipe error */#define EUSERS 87 /* Too many users */#define ENOTSOCK 88 /* Socket operation on non-socket */#define EDESTADDRREQ 89 /* Destination address required */#define EMSGSIZE 90 /* Message too long */#define EPROTOTYPE 91 /* Protocol wrong type for socket */#define ENOPROTOOPT 92 /* Protocol not available */#define EPROTONOSUPPORT 93 /* Protocol not supported */#define ESOCKTNOSUPPORT 94 /* Socket type not supported */#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */#define EPFNOSUPPORT 96 /* Protocol family not supported */#define EAFNOSUPPORT 97 /* Address family not supported by protocol */#define EADDRINUSE 98 /* Address already in use */#define EADDRNOTAVAIL 99 /* Cannot assign requested address */#define ENETDOWN 100 /* Network is down */#define ENETUNREACH 101 /* Network is unreachable */#define ENETRESET 102 /* Network dropped connection because of reset */ #define ECONNABORTED 103 /* Software caused connection abort */#define ECONNRESET 104 /* Connection reset by peer */#define ENOBUFS 105 /* No buffer space available */#define EISCONN 106 /* Transport endpoint is already connected */#define ENOTCONN 107 /* Transport endpoint is not connected */#define ESHUTDOWN 108 /* Cannot send after transport endpoint shutdown */ #define ETOOMANYREFS 109 /* Too many references: cannot splice */#define ETIMEDOUT 110 /* Connection timed out */#define ECONNREFUSED 111 /* Connection refused */#define EHOSTDOWN 112 /* Host is down */#define EHOSTUNREACH 113 /* No route to host */#define EALREADY 114 /* Operation already in progress */#define EINPROGRESS 115 /* Operation now in progress */#define ESTALE 116 /* Stale file handle */#define EUCLEAN 117 /* Structure needs cleaning */#define ENOTNAM 118 /* Not a XENIX named type file */#define ENAVAIL 119 /* No XENIX semaphores available */#define EISNAM 120 /* Is a named type file */#define EREMOTEIO 121 /* Remote I/O error */#define EDQUOT 122 /* Quota exceeded */#define ENOMEDIUM 123 /* No medium found */#define EMEDIUMTYPE 124 /* Wrong medium type */#define ECANCELED 125 /* Operation Canceled */#define ENOKEY 126 /* Required key not available */。

【IT专家】Linux 编译报错

【IT专家】Linux 编译报错

本文由我司收集整编,推荐下载,如有疑问,请与我司联系Linux 编译报错2012/06/15 1 最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类下面这样的错误:(.text 0x13): undefined reference to `func’ 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。

 (ps,1-5是针对自定义的函数,6针对线程,7针对opencv) 1. 链接时缺失了相关目标文件(.o) 测试代码如下: 然后编译。

 gcc -c test.c gcc –c main.c 得到两个.o 文件,一个是main.o,一个是test.o ,然后我们链接.o 得到可执行程序: gcc -o main main.o 这时,你会发现,报错了: main.o: In function `main’: main.c:(.text 0x7): undefined reference to `test’ collect2: ld returned 1 exit status 这就是最典型的undefined reference错误,因为在链接时发现找不到某个函数的实现文件,本例中test.o文件中包含了test()函数的实现,因此如果按下面这种方式链接就没事了。

 gcc -o main main.o test.o 【扩展】:其实上面为了让大家更加清楚底层原因,我把编译链接分开了,下面这样编译也会报undefined reference错,其实底层原因与上面是一样的。

 gcc -o main main.c //缺少test()的实现文件需要改成如下形式才能成功,将test()函数的实现文件一起编译。

 gcc -o main main.c test.c //ok,没问题了2. 链接时缺少相关的库文件(.a/.so) 在此,只举个静态库的例子,假设源码如下。

Linux错误码大全(建议收藏)

Linux错误码大全(建议收藏)

Linux错误码大全查看错误代码errno是调试程序的一个重要方法。

当linuc C api函数发生异常时,一般会将errno变量(需include errno.h)赋一个整数值,不同的值表示不同的含义,可以通过查看该值推测出错的原因。

在实际编程中用这一招解决了不少原本看来莫名其妙的问题。

比较麻烦的是每次都要去linux源代码里面查找错误代码的含义,现在把它贴出来,以后需要查时就来这里看了。

1-34号错误号是在内核源码的include/asm-generic/errno-base.h定义35-132则是在include/asm-generic/errno.h中定义剩下还有一些更大的错误号是留给内核级别的,如系统调用等,用户程序一般是看不见的这些号的,Ubuntu9.10中/usr/src/linux-headers-2.6.31-21-generic/include/linux/errno.h#ifndef _ASM_GENERIC_ERRNO_BASE_H#define _ASM_GENERIC_ERRNO_BASE_H#define EPERM 1 /*Operation not permitted */ #define ENOENT 2 /*No such file or directory */ #define ESRCH 3 /*No such process */#define EINTR 4 /*Interrupted system call */ #define EIO 5 /*I/O error */#define ENXIO 6 /*No such device or address */ #define E2BIG 7 /*Argument list too long */ #define ENOEXEC 8 /*Exec format error */ #define EBADF 9 /*Bad file number */#define ECHILD 10 /*No child processes */ #define EAGAIN 11 /*Try again */#define ENOMEM 12 /*Out of memory */#define EACCES 13 /*Permission denied */ #define EFAULT 14 /*Bad address */#define ENOTBLK 15 /*Block device required */ #define EBUSY16 /*Device or resource busy */ #define EEXIST 17 /*File exists */#define EXDEV 18 /*Cross-device link */#define ENODEV 19 /*No such device */#define ENOTDIR 20 /*Not a directory */#define EISDIR 21 /*Is a directory */#define EINVAL 22 /*Invalid argument */#define ENFILE 23 /*File table overflow */#define EMFILE 24 /*Too many open files */#define ENOTTY 25 /*Not a typewriter */#define ETXTBSY 26 /*Text file busy */#define EFBIG 27 /*File too large */#define ENOSPC 28 /*No space left on device */ #define ESPIPE 29 /*Illegal seek */#define EROFS 30 /*Read-only file system */#define EMLINK 31 /*Too many links */#define EPIPE 32 /*Broken pipe */#define EDOM 33 /*Math argument out of domain of func */#define ERANGE 34 /*Math result not representable */#endif#include#define EDEADLK 35 /*Resource deadlock would occur */ #define ENAMETOOLONG 36 /*File name too long */#define ENOLCK 37 /*No record locks available */ #define ENOSYS 38 /*Function not implemented */ #defineENOTEMPTY 39 /*Directory not empty */#define ELOOP 40 /*Too many symbolic links encountered */#define EWOULDBLOCK EAGAIN /*Operation would block */ #define ENOMSG 42 /*No message of desired type */ #define EIDRM 43 /*Identifier removed */#define ECHRNG 44 /*Channel number out of range */ #define EL2NSYNC 45 /*Level 2 not synchronized */ #define EL3HLT 46 /*Level 3 halted */#define EL3RST 47 /*Level 3 reset */#define ELNRNG 48 /*Link number out of range */#define EUNATCH 49 /*Protocol driver not attached */ #define ENOCSI 50 /*No CSI structure available */ #define EL2HLT 51 /*Level 2 halted */#define EBADE 52 /*Invalid exchange */#define EBADR 53 /*Invalid request descriptor */ #define EXFULL 54 /*Exchange full */#define ENOANO 55 /*No anode */#define EBADRQC 56 /*Invalid request code */ #define EBADSLT 57 /*Invalid slot */#define EDEADLOCK EDEADLK#define EBFONT 59 /*Bad font file format */#define ENOSTR 60 /*Device not a stream */#define ENODATA 61 /*No data available */#define ETIME 62 /*Timer expired */#define ENOSR 63 /*Out of streams resources */#define ENONET 64 /*Machine is not on the network */ #define ENOPKG 65 /*Package not installed */ #define EREMOTE 66 /*Object is remote */#define ENOLINK 67 /*Link has been severed */ #define EADV 68 /*Advertise error */#define ESRMNT 69 /*Srmount error */#define ECOMM 70 /*Communication error on send */ #define EPROTO 71 /*Protocol error */#define EMULTIHOP 72 /*Multihop attempted */#define EDOTDOT 73 /*RFS specific error */#define EBADMSG 74 /*Not a data message */#define EOVERFLOW 75 /*Value too large for defined data type */#define ENOTUNIQ 76 /*Name not unique on network */#define EBADFD 77 /*File descriptor in bad state */ #define EREMCHG 78 /*Remote address changed */ #define ELIBACC 79 /*Can not access a needed shared library */#define ELIBBAD 80 /*Accessing a corrupted shared library */ #define ELIBSCN 81 /* .lib section in a.out corrupted */#define ELIBMAX 82 /*Attempting to link in too many shared libraries */#define ELIBEXEC 83 /*Cannot exec a shared library directly */ #define EILSEQ 84 /*Illegal byte sequence */#define ERESTART 85 /*Interrupted system call should be restarted */#define ESTRPIPE 86 /*Streams pipe error */#define EUSERS 87 /*Too many users */#define ENOTSOCK 88 /*Socket operation on non-socket */#define EDESTADDRREQ 89 /*Destination address required */ #define EMSGSIZE 90 /*Message too long */#define EPROTOTYPE 91 /*Protocol wrong type for socket */ #define ENOPROTOOPT 92 /*Protocol not available */#define EPROTONOSUPPORT 93 /*Protocol not supported */ #define ESOCKTNOSUPPORT 94 /*Socket type not supported */ #define EOPNOTSUPP 95 /*Operation not supported on transport endpoint */#define EPFNOSUPPORT 96 /*Protocol family not supported */ #define EAFNOSUPPORT 97 /*Address family not supported by protocol */#define EADDRINUSE 98 /*Address already in use */#define EADDRNOTAVAIL 99 /*Cannot assign requested address */#define ENETDOWN 100 /*Network is down */#define ENETUNREACH 101 /*Network is unreachable */#define ENETRESET 102 /*Network dropped connection because of reset */#define ECONNABORTED 103 /*Software caused connection abort */#define ECONNRESET 104 /*Connection reset by peer */#define ENOBUFS 105 /*No buffer space available */ #define EISCONN 106 /*Transport endpoint is already connected */#define ENOTCONN 107 /*Transport endpoint is not connected */#define ESHUTDOWN 108 /*Cannot send after transport endpoint shutdown */#define ETOOMANYREFS 109 /*T oo many references: cannot splice */#define ETIMEDOUT 110 /*Connection timed out */#define ECONNREFUSED 111 /*Connection refused */ #define EHOSTDOWN 112 /*Host is down */#define EHOSTUNREACH 113 /*No route to host */#define EALREADY 114 /*Operation already in progress */ #define EINPROGRESS 115 /*Operation now in progress */ #define ESTALE 116 /*Stale NFS file handle */ #define EUCLEAN 117 /*Structure needs cleaning */ #define ENOTNAM 118 /*Not a XENIX named type file */ #define ENAVAIL 119 /*No XENIX semaphores available */ #define EISNAM 120 /*Is a named type file */ #define EREMOTEIO 121 /*Remote I/O error */#define EDQUOT 122 /*Quota exceeded */#define ENOMEDIUM 123 /*No medium found */#define EMEDIUMTYPE 124 /*Wrong medium type *#define ECANCELED 125 / *操作已取消*/#define ENOKEY 126 / *必需的密钥不可用*/ #define EKEYEXPIRED 127 / *密钥已过期*/#define EKEYREVOKED 128 / *密钥已被撤销*/#define EKEYREJECTED 129 / *密钥被服务拒绝*// *用于强大的互斥体*/#define EOWNERDEAD 130 / *所有者死亡*/#define ENOTRECOVERABLE 131 / *状态不可恢复*/#define ERFKILL 132 / *由于射频杀死*/#ifdef __KERNEL__/ **用户程序切勿看到这些内容。

linux错误号对应信息

linux错误号对应信息

以下错误信息是从linux内核中提取,并使用baidu翻译得出中文含义,在后半部分英文部分,是内核标记错误的原文。

新内核中未能提取到,不过差异不会很大。

linux错误号及对应的意义error.00是:成功error.01是:不允许操作error.02是:没有这样的文件或目录error.03是:没有这样的过程error.04:中断的系统调用error.05是:输入/输出错误error.06是:没有这样的设备或地址error.07是:列表太长error.08是:执行格式错误error.09:坏的文件描述符error.10是:没有子进程error.11是:资源暂时不可用error.12是:无法分配内存error.13是:拒绝许可error.14是:错误的地址error.15是块设备请求error.16是:设备或资源忙error.17是:文件存在error.18是无效的交叉链接error.19是:没有这样的设备error.20是:不是一个目录error.21:是一个目录error.22是无效的参数error.23是:打开太多的文件系统error.24是:打开的文件太多error.25是:不适当的ioctl error.26:文本文件忙error.27是:文件太大error.28是:在设备上没有空间error.29是:非法谋取error.30是只读文件系统error.31是:太多的链接error.32是:断管error.33:数值参数的域名error.34:数值结果超出范围error.35是:资源死锁避免error.36是:文件名太长error.37是:没有可用锁error.38是:功能没有实现error.39:目录不空error.40:符号链接层次太多error.41是:未知错误41 error.42是:没有期望类型的消息error.43:标识符删除error.44:频道数目超出范围error.45是:2级不同步error.46是:3级中断error.47是:3级复位error.48:链接数超出范围error.49:协议驱动程序没有连接error.50是:没有可用之结构error.51是:2级中断error.52是无效的交换error.53是:请求描述符无效error.54是:交换全error.55是:没有阳极error.56是无效的请求的代码error.57是无效的槽error.58是:未知错误58 error.59是:错误的字体文件格式error.60是:设备不流error.61是:无可用数据error.62:计时器过期error.63是:出流资源error.64是:机上的不是网error.65是:没有安装软件包error.66是:对象是远程的error.67是:联系被切断error.68是:广告的错误error.69是:srmount误差error.70是:发送时的通讯错误error.71:协议错误error.72企图是:跳error.73:范畴专题具体的错误error.74是坏消息error.75:值太大,定义数据类型error.76是:名不是唯一的网络error.77是:文件描述符在坏状态error.78:远程地址改变了error.79是:无法访问必要的共享库error.80是:访问损坏的共享库error.81:库段. out损坏。

linux编译安装时常见错误解决办法

linux编译安装时常见错误解决办法

linux编译安装时常见错误解决办法configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution复制代码代码如下:yum -y install libxslt-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.复制代码代码如下:yum -y install net-snmp-develconfigure: error: Please reinstall readline - I cannot find readline.h复制代码代码如下:yum -y install readline-develconfigure: error: Cannot find pspell复制代码代码如下:yum -y install aspell-develchecking for unixODBC support... configure: error: ODBC header file '/usr/include/sqlext.h' not found!复制代码代码如下:yum -y install unixODBC-develconfigure: error: Unable to detect ICU prefix or /usr/bin/icu-config failed. Please verify ICU install prefix and make sure icu-config works.复制代码代码如下:yum -y install libicu-develconfigure: error: utf8mime2text() has new signature, but U8TCANONICAL is missing. This should not happen. Check config.log for additional information.复制代码代码如下:yum -y install libc-client-develconfigure: error: freetype.h not found.复制代码代码如下:yum -y install freetype-develconfigure: error: xpm.h not found.复制代码代码如下:yum -y install libXpm-develconfigure: error: png.h not found.复制代码代码如下:yum -y install libpng-develconfigure: error: vpx_codec.h not found.复制代码代码如下:yum -y install libvpx-develconfigure: error: Cannot find enchant复制代码代码如下:yum -y install enchant-develconfigure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/复制代码代码如下:yum -y install libcurl-develLAOGAO added 20140907:configure: error: mcrypt.h not found. Please reinstall libmcrypt.复制代码代码如下:wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gztar zxf libmcrypt-2.5.7.tar.gzcd libmcrypt-2.5.7./configuremake && make installadded 20141003:Cannot find imap复制代码代码如下:ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.soconfigure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing.复制代码代码如下:yum -y install libc-client-develCannot find ldap.h复制代码代码如下:yum -y install openldapyum -y install openldap-develconfigure: error: Cannot find ldap libraries in /usr/lib复制代码代码如下:cp -frp /usr/lib64/libldap* /usr/lib/configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path复制代码代码如下:yum -y install postgresql-develconfigure: error: Please reinstall the lib curl distribution复制代码代码如下:yum -y install curl-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.复制代码代码如下:yum -y install net-snmp-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution复制代码代码如下:yum -y install libxslt-develchecking for BZip2 support… yes checking for BZip2 in default path… not found configure: error: Please reinstall the BZip2 distribution Fix:复制代码代码如下:yum -y install bzip2-develchecking for cURL support… yes checking if we should use cURL for url streams… no checking for cURL in default path… not found configure: error: Please reinstall the libcurl distribution – easy.h should be in/include/curl/Fix:复制代码代码如下:yum -y install curl-develchecking for curl_multi_strerror in -lcurl… yes checking for QDBM support… no checking for GDBM support… no checking for NDBM support… no configure: error: DBA: Could not find necessary header file(s).Fix:复制代码代码如下:yum -y install db4-develchecking for fabsf… yes checking for floorf… yes configure: error: jpeglib.h not found.Fix:复制代码代码如下:yum -y install libjpeg-develchecking for fabsf… yes checking for floorf… yes checking for jpeg_read_header in -ljpeg… yes configure: error: png.h not found. Fix:复制代码代码如下:yum -y install libpng-develchecking for png_write_image in -lpng… yes If configure fails try –with-xpm-dir=configure: error: freetype.h not found.Fix:复制代码代码如下:Reconfigure your PHP with the following option. --with-xpm-dir=/usrchecking for png_write_image in -lpng… yes configure: error: libXpm.(a|so) not found.Fix:复制代码代码如下:yum -y install libXpm-develchecking for bind_textdomain_codeset in -lc… yes checking for GNU MP support… yes configure: error: Unable to locate gmp.hFix:复制代码代码如下:yum -y install gmp-develchecking for utf8_mime2text signature… new checking for U8T_DECOMPOSE… configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.Fix:复制代码代码如下:yum -y install libc-client-develchecking for LDAP support… yes, shared checking for LDAP Cyrus SASL support… yes configure: error: Cannot find ldap.hFix:复制代码代码如下:yum -y install openldap-develchecking for mysql_set_character_set in -lmysqlclient… yes checking for mysql_stmt_next_result in -lmysqlclient… no checking for Oracle Database OCI8 support… no checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!Fix:复制代码代码如下:yum -y install unixODBC-develchecking for PostgreSQL support for PDO… yes, shared checking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation pathFix:复制代码代码如下:yum -y install postgresql-develchecking for sqlite 3 support for PDO… yes, shared checking for PDO includes… (cached) /usr/local/src/php-5.3.7/ext checking for sqlite3 files in default path… not found configure: error: Please reinstall the sqlite3 distributionFix:复制代码代码如下:yum -y install sqlite-develchecking for utsname.domainname… yes checking for PSPELL support… yes configure: error: Cannot find pspellFix:复制代码代码如下:yum -y install aspell-develchecking whether to enable UCD SNMP hack… yes checking for default_store.h… nochecking for kstat_read in -lkstat… no checking for snmp_parse_oid in -lsnmp… no checking for init_snmp in -lsnmp… no configure: error: SNMP sanity check failed. Please check config.log for more information.Fix:复制代码代码如下:yum -y install net-snmp-develchecking whether to enable XMLWriter support… yes, shared checking for xml2-config path… (cached) /usr/bin/xml2-config checking whether libxml build works… (cached) yes checking for XSL support… yes, shared configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distributionFix:复制代码代码如下:yum -y install libxslt-develconfigure: error: xml2-config not found. Please check your libxml2 installation.Fix:复制代码代码如下:yum -y install libxml2-develchecking for PCRE headers location… configure: error: Could not find pcre.h in /usrFix:复制代码代码如下:yum -y install pcre-develconfigure: error: Cannot find MySQL header files under yes. Note that the MySQL client library is not bundled anymore!Fix:复制代码代码如下:yum -y install mysql-develchecking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!Fix:复制代码代码如下:yum -y install unixODBC-develchecking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path Fix:复制代码代码如下:yum -y install postgresql-develconfigure: error: Cannot find pspellFix:复制代码代码如下:yum -y install pspell-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.Fix:复制代码代码如下:yum -y install net-snmp-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distributionFix:复制代码代码如下:yum -y install libxslt-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution复制代码代码如下:yum -y install libxslt-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.复制代码代码如下:yum -y install net-snmp-develconfigure: error: Please reinstall readline - I cannot find readline.h复制代码代码如下:yum -y install readline-develconfigure: error: Cannot find pspell复制代码代码如下:yum -y install aspell-develchecking for unixODBC support... configure: error: ODBC header file '/usr/include/sqlext.h' not found!复制代码代码如下:yum -y install unixODBC-develconfigure: error: Unable to detect ICU prefix or /usr/bin/icu-config failed. Please verify ICU install prefix and make sure icu-config works.复制代码代码如下:yum -y install libicu-develconfigure: error: utf8mime2text() has new signature, but U8TCANONICAL is missing. This should not happen. Check config.log for additional information.复制代码代码如下:yum -y install libc-client-develconfigure: error: freetype.h not found.复制代码代码如下:yum -y install freetype-develconfigure: error: xpm.h not found.复制代码代码如下:yum -y install libXpm-develconfigure: error: png.h not found.复制代码代码如下:yum -y install libpng-develconfigure: error: vpx_codec.h not found.复制代码代码如下:yum -y install libvpx-develconfigure: error: Cannot find enchant复制代码代码如下:yum -y install enchant-develconfigure: error: Please reinstall the libcurl distribution - easy.h should be in /include/curl/复制代码代码如下:yum -y install libcurl-develLAOGAO added 20140907:configure: error: mcrypt.h not found. Please reinstall libmcrypt.复制代码代码如下:wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gztar zxf libmcrypt-2.5.7.tar.gzcd libmcrypt-2.5.7./configuremake && make installadded 20141003:Cannot find imap复制代码代码如下:ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.soconfigure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing.复制代码代码如下:yum -y install libc-client-develCannot find ldap.h复制代码代码如下:yum -y install openldapyum -y install openldap-develconfigure: error: Cannot find ldap libraries in /usr/lib复制代码代码如下:cp -frp /usr/lib64/libldap* /usr/lib/configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path复制代码代码如下:configure: error: Please reinstall the lib curl distribution复制代码代码如下:yum -y install curl-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.复制代码代码如下:yum -y install net-snmp-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution复制代码代码如下:yum -y install libxslt-develchecking for BZip2 support… yes checking for BZip2 in default path… not found configure: error: Please reinstall the BZip2 distribution Fix:复制代码代码如下:yum -y install bzip2-develchecking for cURL support… yes checking if we should use cURL for url streams… no checking for cURL in default path… not found configure: error: Please reinstall the libcurl distribution – easy.h should be in/include/curl/Fix:复制代码代码如下:yum -y install curl-develchecking for curl_multi_strerror in -lcurl… yes checking for QDBM support… no checking for GDBM support… no checking for NDBM support… no configure: error: DBA: Could not find necessary header file(s).Fix:复制代码代码如下:yum -y install db4-develchecking for fabsf… yes checking for floorf… yes configure: error: jpeglib.h not found.Fix:复制代码代码如下:yum -y install libjpeg-develchecking for fabsf… yes checking for floorf… yes checking for jpeg_read_header in -ljpeg… yes configure: error: png.h not found.Fix:复制代码代码如下:yum -y install libpng-develchecking for png_write_image in -lpng… yes If configure fails try –with-xpm-dir=configure: error: freetype.h not found.Fix:复制代码代码如下:Reconfigure your PHP with the following option. --with-xpm-dir=/usrchecking for png_write_image in -lpng… yes configure: error: libXpm.(a|so) not found.Fix:复制代码代码如下:yum -y install libXpm-develchecking for bind_textdomain_codeset in -lc… yes checking for GNU MP support… yes configure: error: Unable to locate gmp.hFix:复制代码代码如下:yum -y install gmp-develchecking for utf8_mime2text signature… new checking for U8T_DECOMPOSE… configure: error: utf8_mime2text() has new signature, but U8T_CANONICAL is missing. This should not happen. Check config.log for additional information.Fix:复制代码代码如下:checking for LDAP support… yes, shared checking for LDAP Cyrus SASL support… yes configure: error: Cannot find ldap.hFix:复制代码代码如下:yum -y install openldap-develchecking for mysql_set_character_set in -lmysqlclient… yes checking for mysql_stmt_next_result in -lmysqlclient… no checking for Oracle Database OCI8 support… no checking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!Fix:复制代码代码如下:yum -y install unixODBC-develchecking for PostgreSQL support for PDO… yes, shared checking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation pathFix:复制代码代码如下:yum -y install postgresql-develchecking for sqlite 3 support for PDO… yes, shared checking for PDO includes… (cached) /usr/local/src/php-5.3.7/ext checking for sqlite3 files in default path… not found configure: error: Please reinstall the sqlite3 distributionFix:复制代码代码如下:yum -y install sqlite-develchecking for utsname.domainname… yes checking for PSPELL support… yes configure: error: Cannot find pspellFix:复制代码代码如下:yum -y install aspell-develchecking whether to enable UCD SNMP hack… yes checking for default_store.h… nochecking for kstat_read in -lkstat… no checking for snmp_parse_oid in -lsnmp… no checking for init_snmp in -lsnmp… no configure: error: SNMP sanity check failed. Please check config.log for more information.Fix:复制代码代码如下:yum -y install net-snmp-develchecking whether to enable XMLWriter support… yes, shared checking for xml2-config path… (cached) /usr/bin/xml2-config checking whether libxml build works… (cached) yes checking for XSL support… yes, shared configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distributionFix:复制代码代码如下:yum -y install libxslt-develconfigure: error: xml2-config not found. Please check your libxml2 installation.Fix:复制代码代码如下:yum -y install libxml2-develchecking for PCRE headers location… configure: error: Could not find pcre.h in /usrFix:复制代码代码如下:yum -y install pcre-develconfigure: error: Cannot find MySQL header files under yes. Note that the MySQL client library is not bundled anymore!Fix:复制代码代码如下:yum -y install mysql-develchecking for unixODBC support… configure: error: ODBC header file ‘/usr/include/sqlext.h' not found!Fix:复制代码代码如下:yum -y install unixODBC-develchecking for pg_config… not found configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path Fix:复制代码代码如下:yum -y install postgresql-develconfigure: error: Cannot find pspellFix:复制代码代码如下:yum -y install pspell-develconfigure: error: Could not find net-snmp-config binary. Please check your net-snmp installation.Fix:复制代码代码如下:yum -y install net-snmp-develconfigure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distributionFix:复制代码代码如下:yum -y install libxslt-devel。

常见的Linux系统错误码(5篇可选)

常见的Linux系统错误码(5篇可选)

常见的Linux系统错误码(5篇可选)第一篇:常见的Linux系统错误码常见的Linux系统错误码,即errorno的值EPERM Operation not permitted 操作不许可 ENOENT No such file or directory 无此文件或目录ESRCH No such process 无此过程EINTR Interrupted system call 系统调用被禁止EIO I/O error I/O 错误 ENXIO No such device or address 无此器件或地址E2BIG Arg list too long Arg 列表太长ENOEXEC Exec format error Exec 格式错误EBADF Bad file number 文件数目错误 10 ECHILD No child processes 无子过程 11 EAGAIN Try again 再试一遍 ENOMEM Out of memory 内存溢出 13 EACCES Permission denied 许可拒绝 14 EFAULT Bad address 错误的地址ENOTBLK Block device required 需要块设备16 EBUSY Device or resource busy 设备或资源忙 17 EEXIST File exists 文件存在 EXDEV Cross-device link 跨器链接 19 ENODEV No such device 无此设备ENOTDIR Not a directory 不是一个目录21 EISDIR Is a directory 是一个目录EINVAL Invalid argument 无效的函数自变量23 ENFILE File table overflow 文件表溢出 EMFILE T oo many open files 打开的文件太多 25 ENOTTY Inappropriate ioctl for device 26 ETXTBSY Text file busy 文本文件忙 27 EFBIG File too large 文件太大 ENOSPC No space left on device 磁盘空间不足 29 ESPIPE Illegal seek 不合法的寻找 EROFS Read-only file system 只读文件系统 31 EMLINK Too many links 太多的链接/usr/include/asm-generic/errno-base.h#define EPERM/* Operation not permitted */ #define ENOENT/* No such file or directory */ #define ESRCH/* No such process */ #define EINTR/* Interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO/* No such device or address */ #define E2BIG/* Argument list too long */ #define ENOEXEC/* Exec format error */ #define EBADF/* Bad file number */ #define ECHILD/* No child processes */ #define EAGAIN/* Try again */ #define ENOMEM/* Out of memory */ #define EACCES/* Permission denied */ #define EFAULT/* Bad address */ #define ENOTBLK/* Block device required */ #define EBUSY/* Device or resource busy */ #define EEXIST/* File exists */ #define EXDEV/* Cross-device link */ #define ENODEV/* No such device */ #define ENOTDIR/* Not a directory */ #define EISDIR/* Is a directory */ #define EINVAL/* Invalid argument */ #define ENFILE/* File table overflow */ #define EMFILE/* Too many open files */ #define ENOTTY/* Not a typewriter */ #define ETXTBSY/* Text file busy */ #define EFBIG/* File too large */ #define ENOSPC/* No space left on device */ #define ESPIPE/* Illegal seek */ #define EROFS/* Read-only file system */ #define EMLINK/* Too many links */ #define EPIPE 32 /* Broken pipe */ #define EDOM/* Math argument out of domain of func */ #define ERANGE /* Math result not representable *//usr/include/asm-generic/errno.h#define EDEADLK/* Resource deadlock would occur */ #define ENAMETOOLONG 36 /* File name too long */ #define ENOLCK /* No record locks available */ #define ENOSYS/* Function not implemented */ #define ENOTEMPTY/* Directory not empty */ #define ELOOP/* Too many symbolic links encountered */ #define EWOULDBLOCK EAGAIN /* Operation would block */ #define ENOMSG/* No message of desired type */ #define EIDRM/* Identifier removed */ #define ECHRNG/* Channel number out of range */ #define EL2NSYNC 45 /* Level 2 not synchronized */ #define EL3HLT/* Level 3 halted */ #define EL3RST/* Level 3 reset */ #define ELNRNG/* Link number out of range */ #define EUNATCH/* Protocol driver not attached */ #define ENOCSI/* No CSI structure available */ #define EL2HLT/* Level 2 halted */ #define EBADE/* Invalid exchange */ #define EBADR/* Invalid request descriptor */ #define EXFULL/* Exchange full */ #define ENOANO/* No anode */ #define EBADRQC/* Invalid request code */ #define EBADSLT/* Invalid slot */ #define EDEADLOCKEDEADLK#define EBFONT/* Bad font file format */ #define ENOSTR/* Device not a stream */ #define ENODATA/* No data available */ #define ETIME/* Timer expired */ #define ENOSR/* Out of streams resources */ #define ENONET/* Machine is not on the network */ #define ENOPKG/* Package not installed */ #define EREMOTE/* Object is remote */ #define ENOLINK/* Link has been severed */ #define EADV/* Advertise error */ #define ESRMNT/* Srmount error */ #define ECOMM/* Communication error on send */ #define EPROTO/* Protocol error */ #define EMULTIHOP/* Multihop attempted */ #define EDOTDOT/* RFS specific error */ #define EBADMSG/* Not a data message */ #define EOVERFLOW/* Value too large for defined data type */ #define ENOTUNIQ 76 /* Name not unique on network */ #define EBADFD/* File descriptor in bad state */ #define EREMCHG/* Remote address changed */ #define ELIBACC/* Can not access a needed shared library */ #define ELIBBAD /* Accessing a corrupted shared library */ #define ELIBSCN /*.lib section in a.out corrupted */ #define ELIBMAX/* Attempting to link in too many shared libraries */ #define ELIBEXEC 83 /* Cannot exec a shared library directly */ #define EILSEQ/* Illegal byte sequence */ #define ERESTART 85 /* Interrupted system call should be restarted */ #define ESTRPIPE 86 /* Streams pipe error */ #define EUSERS/* Too many users */ #define ENOTSOCK 88 /* Socket operation on non-socket */ #define EDESTADDRREQ 89 /* Destination address required */ #define EMSGSIZE 90 /* Messagetoo long */ #define EPROTOTYPE 91 /* Protocol wrong type for socket */ #define ENOPROTOOPT 92 /* Protocol not available */ #define EPROTONOSUPPORT 93 /* Protocol not supported */ #define ESOCKTNOSUPPORT 94 /* Socket type not supported */ #define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */ #define EPFNOSUPPORT 96 /* Protocol family not supported */ #define EAFNOSUPPORT 97 /* Address family not supported by protocol */ #define EADDRINUSE 98 /* Address already in use */ #define EADDRNOTAVAIL 99 /* Cannot assign requested address */ #define ENETDOWN 100 /* Network is down */ #define ENETUNREACH 101 /* Network is unreachable */ #define ENETRESET/* Network dropped connection because of reset */ #define ECONNABORTED 103 /* Software caused connection abort */ #define ECONNRESET 104 /* Connection reset by peer */ #define ENOBUFS/* No buffer space available */ #define EISCONN/* Transport endpoint is already connected */ #define ENOTCONN 107 /* Transport endpoint is not connected */ #define ESHUTDOWN/* Cannot send after transport endpoint shutdown */ #define ETOOMANYREFS 109 /* Too many references: cannot splice */ #define ETIMEDOUT/* Connection timed out */ #define ECONNREFUSED 111 /* Connection refused */ #define EHOSTDOWN/* Host is down */ #define EHOSTUNREACH 113 /* No route to host */ #define EALREADY 114 /* Operation already in progress */ #define EINPROGRESS 115 /* Operation now in progress */ #define ESTALE/* Stale NFS file handle */ #define EUCLEAN/* Structure needs cleaning */ #define ENOTNAM/* Not a XENIX named type file */ #define ENAVAIL/* No XENIX semaphores available */ #define EISNAM/* Is a named type file */ #define EREMOTEIO/* Remote I/O error */ #define EDQUOT/* Quota exceeded */#define ENOMEDIUM 123 /* No medium found */ #define EMEDIUMTYPE 124 /* Wrong medium type */ #define ECANCELED/* Operation Canceled */ #define ENOKEY 126 /* Required key not available */ #define EKEYEXPIRED 127 /* Key has expired */ #define EKEYREVOKED 128 /* Key has been revoked */ #define EKEYREJECTED 129 /* Key was rejected by service */ /* for robust mutexes */ #define EOWNERDEAD 130 /* Owner died */ #define ENOTRECOVERABLE 131 /* State not recoverable */第二篇:http错误码http 错误代码表所有 HTTP 状态代码及其定义。

内核编译错误scriptsbasicfixdep

内核编译错误scriptsbasicfixdep

内核编译错误scriptsbasicfixdep当我把默认路径中的gcc的软连接指向修改了之后:比如原来是:/usr/bin/gcc -> /usr/bin/gcc-4.4改为:/usr/bin/gcc -> /home/realtimedsp/icetek-am3517-kbe/arm-2009q1/bin/arm-none-linux-gnueabi-gcc这样就会在make时报错:如输入sudo make ARCH=arm CROSS_COMPILE=/home/realtimedsp/icetek-am3517-kbe/arm-2009q1/bin/arm-none-linux-gnueabi- am3517_evm_defconfig #ARCH指定了arm平台,CROSS_COMPILE指定了编译器的前缀,davinci_all_defconfig是你使用的处理器的配置信息,在linux-2.6.32.60/arch/arm/configs目录下报错如下:HOSTCC scripts/basic/fixdep/bin/sh: scripts/basic/fixdep: cannot execute binary filemake[1]: *** [scripts/basic/fixdep] Error 126make: *** [scripts_basic] Error 2这是因为修改了/usr/bin/gcc的指向造成的,make内核时会先用HOSTCC 用来编译几个小的工具程序(比如menuconfig那个界面),然后再用 CC 编译内核所以 HOSTCC 一般就是 gcc 不用改,CC 才是需要的交叉编译器这是需要使用到gcc的,修改之后他没办法编译那个界面了,修改/usr/bin/gcc恢复到指向的x86的编译器就好了。

Linux内核编译实验报告

Linux内核编译实验报告

青岛农业大学理学与信息科学学院Linux课程实验报告设计题目 Linux内核编译学生专业班级通信工程10级1班学生姓名(学号)完成时间 2012-11-82012 年 11 月 15 日内核编译一、内核编译的原因及好处内核是一个操作系统的核心,负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

通常,更新的内核支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳定,并且会修复老版本中发现的许多漏洞等。

经常性地选择升级更新的系统内核,是Linux用户的必要操作内容。

编译内核的好处:1。

最优化服务器2。

出于安全需禁止某些默认功能3。

添加REDHAT LINUX默认未做选择的功能4。

需要更改无法用/proc/sys来变更的核心运行参数5.更好地匹配计算机上的硬件特质二、内核的编译模式内核编译模式可以分为编译到内核和编译成模块两种模式。

要增加对某部分功能的支持,例如网络等,可以把相应部分编译到内核中(build-in),也可以把该部分编译成模块(module)动态调用。

如果编译到内核中,在内核启动时就可以自动支持相应部分的功能,其优点是方便、速度快,机器启动即可使用这部分功能;其缺点是使内核变得庞大起来,无论是否需要这部分功能,它都会存在。

建议将经常使用的部分直接编译到内核中,如网卡。

如果编译成模块,则生成对应的.o文件,使用时可以动态加载,优点是不会使内核过分庞大,缺点是必须得由用户自己来调用这些模块。

三、内核的编译过程1.下载新内核在/pub/linux/kernel可以下载Linux的最新内核代码。

内核的源代码按内核版本(v2.4、v2.5等)组织到多个不同的目录中。

在每个目录中,文件被冠以“linux-x.y.z.tar.gz”和“linux-x.y.z.tar.bz2”等,这些就是Linux内核的源代码。

同时存在一些类似“patch-x.y.z.gz”和“patch-x.y.z.bz2”的文件,这是用来更新前面完整的内核源代码的补丁包。

编译Linux内核的错误汇总

编译Linux内核的错误汇总

-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -size 0 \
-o -name '*%' -o -name '.*.cmd' -o -name 'core' \) \ -type f -print | xargs rm - f 只是找到一些残存文件并删除;
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CC
arch/arm/kernel/asm-offsets.s
cc1: error: invalid option `abi=aapcs- linux' make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
下面是编译时产生的一些信息
1' cross compile
# CROSS_COMPILE specify the prefix used for all executables used
# during compilation. Only gcc and related bin- utils executables
3‘
kevin@kevin-desktop:~/ARMSystem/linux-2.6.12$ make menuconfig
HOSTCC scripts/basic/fixdep scripts/basic/fixdep.c: 在函数‘parse_config_file’中: scripts/basic/fixdep.c:245: 警告: 传递参数 1 (属于‘use_config’) 给指针时, 目标与指针符号不一致
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四: make zImage 和 make xipImage Kernel configured for XIP (CONFIG_XIP_KERNEL=y) Only the xipImage target is available in this case make[1]: *** [arch/arm/boot/zImage] Error 1 make: *** [zImage] Error 2
下面是编译时产生的一些信息
1' cross compile
# CROSS_COMPILE specify the prefix used for all executables used
# during compilation. Only gcc and related bin- utils executables
解决方法:修改 arch/arm/kernel/vmlinux.lds [arm@localhost linux2.6.14]$ vi arch/arm/kernel/vmlinux.lds 将文件尾 2 条的 ASSERT 注释掉(1439 行) /* ASSERT((__proc_info_end __ proc_info_begin), "missing CPU support") */ /* ASSERT((__arch_info_end __ arch_info_begin), "no machine record defined") */ 然后重新 make zImage 即可
b
/usr/local/arm/bin/arm- linux- ld:arch/arm/kernel/vmlinux.lds:782: parse error make: *** [.tmp_vmlinux1] 错误 1 ld 链接时产生错误 对应行:
/home/kevin/ARMSystem/linux-2.6.12/arch/arm/kernel/vmlinux.lds
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CC
arch/arm/kernel/asm-offsets.s
cc1: error: invalid option `abi=aapcs- linux' make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
scripts/basic/docproc.c: 在函数‘singfunc’中: scripts/basic/docproc.c:274: 警告: 对指针赋值时目标与指针符号不一致 scripts/basic/docproc.c: 在函数‘parse_file’中: scripts/basic/docproc.c:296: 警告: 对指针赋值时目标与指针符号不一致
/* those must never be empty */
ASSERT((__proc_info_end - __proc_info_begin), "missing CPU support")
ASSERT((__arch_info_end - __arch_info_begin), "no machine record defined") 解决办法: 注释掉这两行
make: *** [prepare0] Error 2 解决方法:
You're building an EABI kernel with an OABI compiler. You can either turn off the
EABI option in your config file (Kernel Features->Use EABI),or, you can use an EABI toolchain such as the ARM/GNU Linux one from
# are prefixed with $(CROSS_COMPILE).
# CROSS_COMPILE can be set on the command line
# make CROSS_COMPILE=ia64- linux-
# Alternatively CROSS_COMPILE can be set in the environment.
解决方法: 好象是 make menuconfig 的时候 Boot options--->Kernel Execte-In-Place from ROM 选项问题,去掉这个选项编译通过(如果是 make xopImage 时則需要将这个选项 选上),最终成功编译了 make zImage。 五: 出现 make:***[.tmp_vmlinux1] Error 1 这类错误
HOSTCC scripts/basic/split- include scripts/basic/split- include.c: 在函数‘main’中: scripts/basic/split- include.c:113: 警告: 对指针赋值时目标与指针符号不一致
HOSTCC scripts/basic/docproc scripts/basic/docproc.c: 在函数‘find_export_symbols’中: scripts/basic/docproc.c:184: 警告: 对指针赋值时目标与指针符号不一致 scripts/basic/docproc.c:185: 警告: 对指针赋值时目标与指针符号不一致 scripts/basic/docproc.c:202: 警告: 传递参数 2 (属于‘add_new_symbol’) 给指 针时,目标与指针符号不一致
2'
kevin@kevin-desktop:~/ARMSystem/linux-2.6.12$ make distclean
# distclean
#
.PHONY: distclean
distclean: mrproper @find $(srctree) $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
六: 如果大家遇到一下几个问题可以参考本文:
a
make menuconfig
1) /usr/bin/ld: cannot find - lncurses
解决办法:
sudo apt-get install libncurses5-dev 2) Your display is too small to run Menuconfig! 解决办法: 窗口最大化
编译 linux 内核时出现的问题
一: invalid option `abi=aapcs-LINUX'选项错误
scripts/kconfig/conf -s arch/arm/Kconfig
CHK include/linux/version.h SYMLINK include/asm-arm/arch -> include/asm-arm/arch-s3c2410
drivers/built- in.o(.text+0x281e4):drivers/char/nvram.c:350: more undefined
references to `rtc_lock' follow 查找 drivers/char/nvram.c 有关的 rtc_lock 定义,发现 2.6.21 与以往的 kernel 不同, 于是在包含文件中查找,在 include/linux/mc146818rtc.h 中发现了 rtc_lock 的定义, 但是有一个__KERNEL__的条件编译选项,去掉这个条件编译选项,再 make zImage,但是问题好像依然存在,继续在 drivers/char/nvram.c 中增加这个定义 spinlock_t rtc_lock;再编译,发现编译通过。
SHIPPED scripts/kconfig/zconf.tab.h
HOSTCC scripts/kconfig/conf.o scripts/kconfig/conf.c: 在函数‘strip’中: scripts/kconfig/conf.c:46: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标与 指针符号不一致 scripts/kconfig/conf.c: 在函数‘conf_askvalue’中: scripts/kconfig/conf.c:94: 警告: 传递参数 1 (属于‘fgets’) 给指针时,目标与 指针符号不一致 scripts/kconfig/conf.c: 在函数‘conf_string’中: scripts/kconfig/conf.c:187: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:188: 警告: 对指针赋值时目标与指针符号不一致 scripts/kconfig/conf.c: 在函数‘conf_sym’中: scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:236: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘strlen’) 给指针时,目标 与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c:248: 警告: 传递参数 1 (属于‘__builtin_strcmp’) 给指针 时,目标与指针符号不一致 scripts/kconfig/conf.c: 在函数‘conf_choice’中: scripts/kconfig/conf.c:350: 警告: 传递参数 1 (属于‘fgets’) 给指针时,目标与 指针符号不一致
相关文档
最新文档