标签归档:Ubuntu
Ubuntu 编译Qt时候报错解决
此完整出错信息是在./configure阶段
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in /home/zhu/Qt/qt-x11-opensource-src-4.5.2/mkspecs/linux-g++
还是老办法,以不变应万变。进config.test / x11/xlib 执行make命令,看出错信息
g++ -Wl,-O1 -o xlib xlib.o -L/usr/X11R6/lib -lXext -lX11 -lm
/usr/bin/ld: cannot find -lXext
看到了吧,g++在/usr/X11R6/lib下,找不到libXext.so呢。
其原因就在于需要安装libX11的开发包,在ubuntu/debian里包名都是libX11-dev
根据以往的经验,在./configure前主动装好下面3个包,基本上就万事大吉了
sudo apt-get install libX11-dev libXext-dev libXtst-dev
Ubuntu下编译Linux内核
1.俗话说,工欲善其事,必先利其器。在编译内核前,需要配置一下编译环境,在终端输入:
sudo apt-get install build-essential kernel-package libncurses5-dev
其中,build-essential 是安装gcc编译器和make环境。
kernel-package是内核编译有关的。
libncurses5-dev是为了能配置内核,与 make menuconfig 命令有关。
2.下载源代码:去内核源码网 http://www.kernel.org/ 下载自己想编译的内核源代码,我下载的是最新的,linux-3.3.4.tar.bz2,尝尝鲜啊!
3.将其拷贝到主文件夹下面,接着 ctrl+alt+t 打开终端,执行以下命令:
mkdir src && tar -jxf linux-3.3.4.tar.bz2 -C src/
意思就是在主文件夹下新建一个名为src的文件夹,并将源代码解压到src文件夹内。
4.为了进入到src/linux-3.3.4 目录,执行以下命令:cd /src/linux-3.3.4
这样一来,我们的工作目录就变成src/linux-3.3.4了,以后所有的命令都是在这个目录下执行的。
5.配置内核文件比较繁琐,一般我们都会利用系统已经存在的内核配置文件,执行以下命令:
cp /boot/config-uname -r
./.config
由于这个文件是隐藏的,所以当你执行完这条语句,去查看这个文件的时候,是看不到的,但它确实存在,而且还很重要。
注:如果你不是第一次编译,建议你首先执行这样一条语句: make mrproper
其含义是将上一次编译的.o和.config等相关文件删除掉。然后在copy已存在的config文件。这个顺序不能颠倒。如果颠倒了,新copy的config文件就会被删除掉喔。
6. 配置内核。如果对内核的配置不熟,建议执行第5步,如果很熟系,第五步可以忽略。
执行一下命令:make menuconfig
此时,会弹出如下的界面:
最后两项是 Load an Alternate Configuration File 和 Save an Alternate Configuration File
我们进入Load an Alternate Configuration File,会出现这样的画面:
保持默认直接ok就行,这样就利用了刚才复制过的config文件。保存退出就行了。
7.开始编译内核:
make bzImage //编译大内核,如果你想编译小内核,可以这样 make zImage
make modules //编译模块
make install modules_install //将内核与模块相关的文件复制到系统位置
注意:这个过程要花费1-2个小时。
8.在linux-2.6版本及以后,系统会为我们自动生成image文件,所以我们只需要查看是否生成了相应的模块就行了。
进入boot文件夹,看到系统已经有了config-3.3.4 ,initrd.img-3.3.4, System.map-3.3.4,vmlinuz-3.3.4 ,这说明内核已经生成完毕。如图所示:
9.还有一项,看看引导程序是否为我们添加了引导项。执行以下命令:sudo gedit /boot/grub/grub.cfg
如图,系统自动为我们添加了引导项,如果没有,需要自己仿照已存在的项添加。这里就不多说了。
10. reboot 重启之后就可已选择进入相应的内核了。注意:原来系统的内核仍然存在,依然可用。
Ubuntu安装BusyBox致命错误curses.h没有那个文件或目录
问题:
root@czu:~# cd /root/桌面/busybox-1.19.3
root@czu:~/桌面/busybox-1.19.3# make menuconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/basic/split-include
scripts/basic/split-include.c: 在函数‘main’中:
scripts/basic/split-include.c:134:11: 警告: 忽略声明有 warn_unused_result 属性的‘fgets’的返回值 [-Wunused-result]
HOSTCC scripts/basic/docproc
GEN include/applets.h
GEN include/usage.h
GEN applets/Kbuild
GEN coreutils/Kbuild
GEN coreutils/Config.in
GEN coreutils/libcoreutils/Kbuild
GEN procps/Kbuild
GEN procps/Config.in
GEN mailutils/Kbuild
GEN mailutils/Config.in
GEN e2fsprogs/Kbuild
GEN e2fsprogs/Config.in
GEN e2fsprogs/old_e2fsprogs/Kbuild
GEN e2fsprogs/old_e2fsprogs/Config.in
GEN e2fsprogs/old_e2fsprogs/uuid/Kbuild
GEN e2fsprogs/old_e2fsprogs/blkid/Kbuild
GEN e2fsprogs/old_e2fsprogs/e2p/Kbuild
GEN e2fsprogs/old_e2fsprogs/ext2fs/Kbuild
GEN libbb/Kbuild
GEN libbb/Config.in
GEN printutils/Kbuild
GEN printutils/Config.in
GEN libpwdgrp/Kbuild
GEN debianutils/Kbuild
GEN debianutils/Config.in
GEN shell/Kbuild
GEN shell/Config.in
GEN loginutils/Kbuild
GEN loginutils/Config.in
GEN sysklogd/Kbuild
GEN sysklogd/Config.in
GEN console-tools/Kbuild
GEN console-tools/Config.in
GEN init/Kbuild
GEN init/Config.in
GEN scripts/Kbuild
GEN runit/Kbuild
GEN runit/Config.in
GEN miscutils/Kbuild
GEN miscutils/Config.in
GEN archival/Kbuild
GEN archival/Config.in
GEN archival/libarchive/Kbuild
GEN modutils/Kbuild
GEN modutils/Config.in
GEN selinux/Kbuild
GEN selinux/Config.in
GEN util-linux/Kbuild
GEN util-linux/Config.in
GEN util-linux/volume_id/Kbuild
GEN editors/Kbuild
GEN editors/Config.in
GEN findutils/Kbuild
GEN findutils/Config.in
GEN networking/Kbuild
GEN networking/Config.in
GEN networking/libiproute/Kbuild
GEN networking/udhcp/Kbuild
GEN networking/udhcp/Config.in
HOSTCC scripts/kconfig/conf.o
scripts/kconfig/conf.c: 在函数‘conf_choice’中:
scripts/kconfig/conf.c:354:9: 警告: 忽略声明有 warn_unused_result 属性的‘fgets’的返回值 [-Wunused-result]
scripts/kconfig/conf.c: 在函数‘conf_askvalue’中:
scripts/kconfig/conf.c:106:8: 警告: 忽略声明有 warn_unused_result 属性的‘fgets’的返回值 [-Wunused-result]
HOSTCC scripts/kconfig/kxgettext.o
HOSTCC scripts/kconfig/mconf.o
scripts/kconfig/mconf.c: 在函数‘show_textbox’中:
scripts/kconfig/mconf.c:839:7: 警告: 忽略声明有 warn_unused_result 属性的‘write’的返回值 [-Wunused-result]
scripts/kconfig/mconf.c: 在函数‘exec_conf’中:
scripts/kconfig/mconf.c:473:6: 警告: 忽略声明有 warn_unused_result 属性的‘pipe’的返回值 [-Wunused-result]
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/lex.zconf.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/mconf
HOSTCC scripts/kconfig/lxdialog/checklist.o
In file included from scripts/kconfig/lxdialog/checklist.c:24:0:
scripts/kconfig/lxdialog/dialog.h:31:20: 致命错误: curses.h:没有那个文件或目录
编译中断。
make[2]: *** [scripts/kconfig/lxdialog/checklist.o] 错误 1
make[1]: *** [menuconfig] 错误 2
make: *** [menuconfig] 错误 2
root@czu:~/桌面/busybox-1.19.3#
解决办法:
root@czu:~/桌面/busybox-1.19.3# apt-get install libncurses5-dev
原因:
Ubuntu系统中缺少一个套件 ncurses devel ,把此套件安装下即可。
Ubuntu设置root用户登录图形界面
先设定一个root的密码,sudo passwd root
1、先设定一个root的密码,sudo passwd root
2、root 登陆,su root
3、备份一下lightgdm,有备无患。
cp -p /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.bak
4、编辑lightdm.conf
sudo gedit /etc/lightdm/lightdm.conf
5、添加一行:
greeter-show-manual-login=true
修改后为:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true
重启登陆即可。已经可以输入root了。