当前位置: 技术问答>linux和unix
下载linux的开源软件安装,却发现有很多no such file。。的错误
来源: 互联网 发布时间:2016-07-19
本文导语: 下载linux的开源软件安装,却发现有很多no such file。。的错误,多出自include 我想通过修改环境变量的方法 改错 请问修改哪个环境变量文件? | 听你说的好像是这样的: 你下载了源码, 编...
下载linux的开源软件安装,却发现有很多no such file。。的错误,多出自include
我想通过修改环境变量的方法 改错
请问修改哪个环境变量文件?
我想通过修改环境变量的方法 改错
请问修改哪个环境变量文件?
|
听你说的好像是这样的:
你下载了源码, 编译不通过, 报 include 时没有相应文件的错误
如果是这样的, 那源码的目录下一般有 README, INSTALL 等文件, 里面有编译说明, 从中可以找到编译需要哪些库, 你要装上那些库才能成功编译
你下载了源码, 编译不通过, 报 include 时没有相应文件的错误
如果是这样的, 那源码的目录下一般有 README, INSTALL 等文件, 里面有编译说明, 从中可以找到编译需要哪些库, 你要装上那些库才能成功编译
|
对, 源码安装, 必先读 README/INSTALL, 然后查看 configure --help | less,
养成习惯了.
养成习惯了.
|
1. 看readme文件。
2. 编译通不过,可能是代码不全,或者配置不对。
3. 修改Makefile文件,在CFLAGS += -I/your_dir/your_dir
2. 编译通不过,可能是代码不全,或者配置不对。
3. 修改Makefile文件,在CFLAGS += -I/your_dir/your_dir
|
编译Linux内核
Posted by Stephen on 13 September 2009, 7:49 pm
这篇文章主要写给初次编译内核的新手看的。我虽然已经编译过很多次内核,但还是有 很多不明白的地方,希望各位老手指出我文章中的不足之处。
1、准备源码
最新的源码可以从kernel.org上获取,USTC校内用户可以从oss.ustc.edu.cn上下 载,如当前最新版本为2.6.31:
$ wget http://oss.ustc.edu.cn/linux-kernel/v2.6/linux-2.6.31.tar.bz2
解压源码:
$ tar xvf linux-2.6.31.tar.bz2 -C /usr/src/
TIP:如果你使用Debian的话,可以把自己加入src这个组,然后你就可以直接 对/usr/src/这个目录进行操作了:
# adduser `whoami` src
TIP:当然,解压缩到/usr/src/中并不是必须的,你可以解压缩到任何位置。
检查源码:
$ cd /usr/src/linux-2.6.31 $ make mrproper
TIP:该步的作用是检查源码是否有.o文件和依赖问题,从全新的源码编译时不需要这一 步。
2、编译内核
默认情况下,编译输出的文件是放在源码目录里的,可以通过O=output/dir参数来 指定输出文件的位置。很多第一次编译内核的人都会碰到一个问题,/usr所在分区的空 间不够,此时,这个参数就很有用。
源码提供了很多配置方式,推荐使用menuconfig:
$ cd /usr/src/linux-2.6.31
$ make O=/home/name/build/kernel menuconfig
menuconfig需要ncurses-dev这个包,如果没有安装的话请先安装:
$ sudo apt-get install ncurses-dev
对于第一次编译内核的人,不推荐直接从内核默认配置开始,推荐使用发行版自带的配置文件,通常/boot下会有config-2.6.xx的文件。选择Load an Alternate Configuration File,然后输入/boot下那个config文件的名字,载入即可。
第一次编译 最好还是不要随便修改配置了,如果失败的话,会留下心理阴影的:-)
在配置里随便看看,如果有什么懂的也可以根据自己的需求改改,不明白的地方就不要动了吧。完了之后别忘了save,保存的时候文件名就填.config。
接下来就开始正式编译了。编译时间可能会有些长,为了避免终端意外关闭,可以 使用screen,具体用法这里就不谈了。
$ make O=/home/name/build/kernel
3、安装内核
$ sudo make O=/home/name/build/kernel modules_install install
4、生成initrd
$ sudo mkinitramfs -o /boot/initrd-img.2.6.31 2.6.31
关于mkinitramfs的其他参数,请参考man mkinitramfs,关于initrd的作用,请自 己google搜索。我近期也会写一篇文章分析一下initrd。
5、修改引导文件
使用grub的话,可以直接使用:
$ sudo update-grub
来更新引导文件,当然也可以自己编辑/boot/grub/menu.lst或者/boot/grub/grub.cfg 文件。
6、重启
重启之后可以通过以下命令确认你当前使用的是不是刚编译的内核:
$ uname -a
参考:
关于编译内核的方法,主要参考linux源码根目录下的README文件。第一次编译内核时,我很傻傻的google了半天,结果搜出来的文章都是06年前很老的,而且都是互相copy 的,作者本身根本就不对文章负责,当时碰了很多壁。一直不知道,我忽视了源码包带 的文档了,那是最好的教程。
FROM: http://lug.ustc.edu.cn/stephen/
Posted by Stephen on 13 September 2009, 7:49 pm
这篇文章主要写给初次编译内核的新手看的。我虽然已经编译过很多次内核,但还是有 很多不明白的地方,希望各位老手指出我文章中的不足之处。
1、准备源码
最新的源码可以从kernel.org上获取,USTC校内用户可以从oss.ustc.edu.cn上下 载,如当前最新版本为2.6.31:
$ wget http://oss.ustc.edu.cn/linux-kernel/v2.6/linux-2.6.31.tar.bz2
解压源码:
$ tar xvf linux-2.6.31.tar.bz2 -C /usr/src/
TIP:如果你使用Debian的话,可以把自己加入src这个组,然后你就可以直接 对/usr/src/这个目录进行操作了:
# adduser `whoami` src
TIP:当然,解压缩到/usr/src/中并不是必须的,你可以解压缩到任何位置。
检查源码:
$ cd /usr/src/linux-2.6.31 $ make mrproper
TIP:该步的作用是检查源码是否有.o文件和依赖问题,从全新的源码编译时不需要这一 步。
2、编译内核
默认情况下,编译输出的文件是放在源码目录里的,可以通过O=output/dir参数来 指定输出文件的位置。很多第一次编译内核的人都会碰到一个问题,/usr所在分区的空 间不够,此时,这个参数就很有用。
源码提供了很多配置方式,推荐使用menuconfig:
$ cd /usr/src/linux-2.6.31
$ make O=/home/name/build/kernel menuconfig
menuconfig需要ncurses-dev这个包,如果没有安装的话请先安装:
$ sudo apt-get install ncurses-dev
对于第一次编译内核的人,不推荐直接从内核默认配置开始,推荐使用发行版自带的配置文件,通常/boot下会有config-2.6.xx的文件。选择Load an Alternate Configuration File,然后输入/boot下那个config文件的名字,载入即可。
第一次编译 最好还是不要随便修改配置了,如果失败的话,会留下心理阴影的:-)
在配置里随便看看,如果有什么懂的也可以根据自己的需求改改,不明白的地方就不要动了吧。完了之后别忘了save,保存的时候文件名就填.config。
接下来就开始正式编译了。编译时间可能会有些长,为了避免终端意外关闭,可以 使用screen,具体用法这里就不谈了。
$ make O=/home/name/build/kernel
3、安装内核
$ sudo make O=/home/name/build/kernel modules_install install
4、生成initrd
$ sudo mkinitramfs -o /boot/initrd-img.2.6.31 2.6.31
关于mkinitramfs的其他参数,请参考man mkinitramfs,关于initrd的作用,请自 己google搜索。我近期也会写一篇文章分析一下initrd。
5、修改引导文件
使用grub的话,可以直接使用:
$ sudo update-grub
来更新引导文件,当然也可以自己编辑/boot/grub/menu.lst或者/boot/grub/grub.cfg 文件。
6、重启
重启之后可以通过以下命令确认你当前使用的是不是刚编译的内核:
$ uname -a
参考:
关于编译内核的方法,主要参考linux源码根目录下的README文件。第一次编译内核时,我很傻傻的google了半天,结果搜出来的文章都是06年前很老的,而且都是互相copy 的,作者本身根本就不对文章负责,当时碰了很多壁。一直不知道,我忽视了源码包带 的文档了,那是最好的教程。
FROM: http://lug.ustc.edu.cn/stephen/