当前位置: 技术问答>linux和unix
linux编译源码时的错误怎么看啊!
来源: 互联网 发布时间:2016-08-06
本文导语: 最近在编译一个源码包。这个包很大而且编译的时候不在终端显示详细信息,它会把编译信息输出到一个特定文件中。 问题在于编译的时候出错了。小弟不才看他的log不能知道错误具体是哪里引起的望高手指教下面...
最近在编译一个源码包。这个包很大而且编译的时候不在终端显示详细信息,它会把编译信息输出到一个特定文件中。 问题在于编译的时候出错了。小弟不才看他的log不能知道错误具体是哪里引起的望高手指教下面是截取的log的最后几行关于错误的信息:
……
stddef.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for unistd.h... (cached) yes
checking libgen.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for an ANSI C-conforming const... yes
checking for uid_t in sys/types.h... yes
checking for inline... inline
checking for size_t... yes
checking for ssize_t... yes
checking for struct stat.st_rdev... yes
checking for getopt_long... yes
checking for getline... yes
checking for strtof... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for working snprintf... yes
checking for working vsnprintf... yes
checking for stdlib.h... (cached) yes
checking whether scanf can malloc... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing default commands
touch /opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4/.configured
/usr/bin/make -j1 CFLAGS="-Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64" -C /opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4
make[3]: Entering directory `/opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4'
/usr/bin/make all-am
make[4]: Entering directory `/opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4'
if /usr/lib/ccache/gcc -DHAVE_CONFIG_H -I. -I. -I. -Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -MT genext2fs.o -MD -MP -MF ".deps/genext2fs.Tpo" -c -o genext2fs.o genext2fs.c;
then mv -f ".deps/genext2fs.Tpo" ".deps/genext2fs.Po"; else rm -f ".deps/genext2fs.Tpo"; exit 1; fi
/usr/lib/ccache/gcc -Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o genext2fs genext2fs.o
make[4]: Leaving directory `/opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4'
make[3]: Leaving directory `/opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4'
touch -c /opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4/genext2fs
test -x /sbin/ldconfig && /sbin/ldconfig -r /opt/OXNAS810/src/rootfs/buildroot/project_build_arm/OX810/root 2>/dev/null
make[2]: *** [/opt/OXNAS810/src/rootfs/buildroot/binaries/OX810/rootfs.arm.ext2] Error 1
make[2]: Leaving directory `/opt/OXNAS810/src/rootfs/buildroot'
make[1]: *** [/opt/OXNAS810/src/rootfs/buildroot/binaries/OX810/rootfs.arm.ext2.bz2] Error 2
make[1]: Leaving directory `/opt/OXNAS810/src/rootfs'
我的问题是
1、make[2]和make[1]有什么特定的含义吗;
2、就看最后这几个Error(Leaving directory `/opt/OXNAS810/src/rootfs/buildroot)也不像其他的错误那么具体,这里只给出了离开这个路径而不是特定错误(如那个c文件的函数有问题之类的错误)。我怎么才能找到具体的错误原因呢;
3、有人会说切换Leaving directory `/opt/OXNAS810/src/rootfs/buildroot目录下执行make。我试了还是得到类似与上面的错误就是只是一个Error 后面加数字。后面接着Leaving directory `***`;
我感觉最关键的问题是怎么分析上面提到的这类没有详细信息的错误。
……
stddef.h... yes
checking for stdint.h... (cached) yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for unistd.h... (cached) yes
checking libgen.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking getopt.h usability... yes
checking getopt.h presence... yes
checking for getopt.h... yes
checking for an ANSI C-conforming const... yes
checking for uid_t in sys/types.h... yes
checking for inline... inline
checking for size_t... yes
checking for ssize_t... yes
checking for struct stat.st_rdev... yes
checking for getopt_long... yes
checking for getline... yes
checking for strtof... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for working snprintf... yes
checking for working vsnprintf... yes
checking for stdlib.h... (cached) yes
checking whether scanf can malloc... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing default commands
touch /opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4/.configured
/usr/bin/make -j1 CFLAGS="-Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64" -C /opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4
make[3]: Entering directory `/opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4'
/usr/bin/make all-am
make[4]: Entering directory `/opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4'
if /usr/lib/ccache/gcc -DHAVE_CONFIG_H -I. -I. -I. -Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -MT genext2fs.o -MD -MP -MF ".deps/genext2fs.Tpo" -c -o genext2fs.o genext2fs.c;
then mv -f ".deps/genext2fs.Tpo" ".deps/genext2fs.Po"; else rm -f ".deps/genext2fs.Tpo"; exit 1; fi
/usr/lib/ccache/gcc -Wall -O2 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -o genext2fs genext2fs.o
make[4]: Leaving directory `/opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4'
make[3]: Leaving directory `/opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4'
touch -c /opt/OXNAS810/src/rootfs/buildroot/build_arm/genext2fs-1.4/genext2fs
test -x /sbin/ldconfig && /sbin/ldconfig -r /opt/OXNAS810/src/rootfs/buildroot/project_build_arm/OX810/root 2>/dev/null
make[2]: *** [/opt/OXNAS810/src/rootfs/buildroot/binaries/OX810/rootfs.arm.ext2] Error 1
make[2]: Leaving directory `/opt/OXNAS810/src/rootfs/buildroot'
make[1]: *** [/opt/OXNAS810/src/rootfs/buildroot/binaries/OX810/rootfs.arm.ext2.bz2] Error 2
make[1]: Leaving directory `/opt/OXNAS810/src/rootfs'
我的问题是
1、make[2]和make[1]有什么特定的含义吗;
2、就看最后这几个Error(Leaving directory `/opt/OXNAS810/src/rootfs/buildroot)也不像其他的错误那么具体,这里只给出了离开这个路径而不是特定错误(如那个c文件的函数有问题之类的错误)。我怎么才能找到具体的错误原因呢;
3、有人会说切换Leaving directory `/opt/OXNAS810/src/rootfs/buildroot目录下执行make。我试了还是得到类似与上面的错误就是只是一个Error 后面加数字。后面接着Leaving directory `***`;
我感觉最关键的问题是怎么分析上面提到的这类没有详细信息的错误。
|
test -x /sbin/ldconfig && /sbin/ldconfig -r /opt/OXNAS810/src/rootfs/buildroot/project_build_arm/OX810/root 2>/dev/null
错误应该是执行ldconfig命令时发生的,没看到具体错误是因为标准错误输出被重新定向到/dev/null
在发生错误后,在该目录下手动执行该命令,看看具体的错误信息吧
错误应该是执行ldconfig命令时发生的,没看到具体错误是因为标准错误输出被重新定向到/dev/null
在发生错误后,在该目录下手动执行该命令,看看具体的错误信息吧
|
1、make[2]和make[1]:
子Makefile进入的目录
2、就看最后这几个Error(Leaving directory `/opt/OXNAS810/src/rootfs/buildroot)也不像其他的错误那么具体,这里只给出了离开这个路径而不是特定错误(如那个 c文件的函数有问题之类的错误)。我怎么才能找到具体的错误原因呢:
3、有人会说切换Leaving directory `/opt/OXNAS810/src/rootfs/buildroot目录下执行make。我试了还是得到类似与上面的错误就是只是一个Error 后面加数字。后面接着Leaving directory `***`;
2、3:说明错误就在leaving directory这个目录中,因为子Makefile在此目录中遇到错误然后就会退出。
|
我也看不出具体的错误来
那个Leaving directory那样的不是错误
那个Leaving directory那样的不是错误
|
我没说你在编译内核,我说我编译内核出现奇怪的错误。
|
文件系统是你自己做的?
恩,不错。自己编译文件系统。
如果不是别人弄好的文件系统,你自己的文件系统编译出现错误是有点麻烦的。
|
make: *** [/opt/OXNAS810/src/rootfs/buildroot/binaries/OX810/rootfs.arm.ext2] Error 1
|
我编译内核源码也出错过,可是基本上上都能定位到错误的地方,出现一些砌块的错误也是内核版本和编译器不匹配造成的,楼主试试
|
编译出错了,错误在前面吧
|
呵呵 ,我也看不明白, ……