详细介绍Ubuntu编译Linux-xen方法

系统 Linux
在过去的一年里,Linux系统越来越受到电脑用户的欢迎,导致很多人开始学习Linux,学习时,你可能会遇到Ubuntu编译Linux-xen问题,这里将介绍Ubuntu编译Linux-xen问题的解决方法,在这里拿出来和大家分享一下。

在过去的一年里,Linux系统越来越受到电脑用户的欢迎,导致很多人开始学习Linux,学习时,你可能会遇到Ubuntu编译Linux-xen问题,这里将介绍Ubuntu编译Linux-xen问题的解决方法,在这里拿出来和大家分享一下。

在Ubuntu下编译Linux-xen时碰到arch/i386/kernel/head-xen.o无法找到的问题,而该目录下有head-xen.S这个文件,说明make之前的的工作并没有把这个.S文件编译成.o。而同样的代码,在ArchLinux和Fedora上svn checkout后编译没有任何问题。

***发现问题在于Ubuntu默认会把/bin/sh指向/bin/dash,在scripts/Makefile.build里面加上一行SHELL=/bin/bash指定$(shell)使用bash即可。后来还搜了一下为什么Ubuntu使用dash而不是bash,其理由是dash的执行效率更高,但不可否认的是这个改动也导致了一些项目无法成功编译,虽然无法成功编译的原因可能是Makefile里使用了一些bash的特性而非POSIX shell所提供的那些。

另外在debug过程中在网上找到了一些debug Makefile的技巧:

make -n 可以仅仅打印出将要被执行的命令,而不去实际执行

make -np 可以打印出更多的信息(使用的规则和变量),并执行每一条命令

remake也是个不错的选择:“remake is a patched and modernized version of GNU make utility that adds improved error reporting, the ability to trace execution in a comprehensible way, and a debugger.”

在检查shell命令的时候,可以使用set -x使得所有shell命令在执行前都能被输出。

以上就是Ubuntu编译Linux-xen的解决方法。

【编辑推荐】

  1. 如何进入linux单用户模式修改root密码
  2. Ubuntu Linux系统的分区方案
  3. Linux常用软件包的安装 外设挂载 磁盘管理
  4. Linux Bash下如何实现快捷键效果
  5. 全面讲解Linux安全设定
责任编辑:小霞 来源: CSDN
相关推荐

2010-03-11 09:20:54

Ubuntu网络配置

2009-12-24 10:04:38

Linux进行C编译

2009-12-30 17:25:34

Linux Ubunt

2010-03-10 11:04:30

Linux时间转化方法

2010-03-03 09:57:37

Linux虚拟机

2009-12-30 16:51:25

Ubuntu gcc

2010-03-05 15:20:25

Linux man命令

2009-12-24 16:47:22

Linux安装Perl

2009-08-06 14:59:36

C#编译器

2010-01-04 18:46:25

Ubuntu MS

2010-01-07 10:37:46

Ubuntu man

2010-01-07 15:52:30

Ubuntu skyp

2009-12-18 11:48:24

网络安装 Linux

2010-06-18 17:35:16

Linux Anacr

2010-06-22 09:28:31

Linux at命令

2010-01-05 16:56:28

2010-06-23 15:36:23

Linux Bug B

2009-12-25 14:24:59

Linux指令od

2009-12-11 15:59:00

Linux grep指

2009-10-16 09:45:41

Linux内核操作系统
点赞
收藏

51CTO技术栈公众号