Linux下安装QT的剧痛经历

发布时间 : 星期二 文章Linux下安装QT的剧痛经历更新完毕开始阅读

我在命令行中输入:

sudo apt-get install gcc-multilib 结果提示:

现在没有可用的软件包 gcc-multilib,但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已被废弃, 或者只能在其他发布源中找到

E: 软件包 gcc-multilib 没有可供安装的候选者 汗!~~~

现在重装ubuntu的服务器版!没有图像安装界面,我晕啊,没办法,只好重装桌面版。先安装vmware tools,结果提示权限不够,输入: sudo passwd

然后再输入超级用户的密码,这样以后就可以用su来提权限了。输入su,再输入刚刚输入的密码,成功提升权限,安装vmware tools。

搜索 multilib,终于在 http://packages.ubuntu.com/ 找到了:

gcc-multilib_4.5.2-1ubuntu3_i386.deb,但是只有不到1K的字节,直接拷贝到虚拟机里,才发现,不是安装包,只是安装包的下载种子,还得用软件中心打开它,然后再点“安装”让系统下载并安装它,日,我的电脑都不能上网啊,这。。。。,网上怎么也找不到可以直接安装的安装包,这下完了。

用软件中心打开,上面主要有三个信息:

1. 提示:依赖关系不满足:gcc-4.5-multilib(>=4.5.2-1~) 2. 有个可用的“安装”按钮

3. 最下面提示:您需要先安装这个软件才能评论

这三个信息说明了一个简单的问题,就是这个软件还没有安装,而且是可以安装的,但这显示和第一个有点矛盾。不管它,我直接点“安装”,半天过去了,没有任何反应。我下载它的网址是http://packages.ubuntu.com/,于是让网管开启了这个网址的权限,然后再点“安装”,结果仍然是半天没有反应,哎。。。。

按照这个网上的说法,建议使用安装包管理器来更新软件:

您可以使用以下列表中的任何一个源镜像只要往您的 /etc/apt/sources.list 文件中像下面这样添加一行:

deb http://ftp.de.debian.org/debian lenny main

请使用最终确定的源镜像替换 ftp.de.debian.org/debian。

我这里用了 http://mirrors.163.com/ubuntu/ ,我把它添加到/etc/apt/sources.list的最后一行如下:

deb http://mirrors.163.com/ubuntu/ lenny main

保存,结果无法保存!不是以root用户登录,哎。我不想再说什么了。 注销,然后重新以root登录,这次可以修改了,然后再以软件中心打开

gcc-multilib_4.5.2-1ubuntu3_i386.deb,结果提示“请通过正常的软件源安装“gcc-multilib”。请只有在信任该来源时才安装此文件。”,但是安装按钮仍然可用。直接按它,结果显示“正在安装...”,有点希望了。

不管咋样,几十分钟之后,有个提示“安装于2012年5月7日”,后面的按钮变成了“重新安装”,说明应该是安装成功了。

再继续安装gcc-4.7.0,由于刚才已经configure过了,这次就直接make,结果不一会儿就又有提示了:

In file included from /usr/include/features.h:388:0, from /usr/include/stdio.h:28, from ../.././libgcc/../gcc/tsystem.h:88, from ../.././libgcc/libgcc2.c:29:

/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h:没有那个文件或目录 compilation terminated. make[3]: *** [_muldi3.o] 错误 1

make[3]:正在离开目录 `/home/ligo/qttools/gcc/gcc-4.7.0/i686-pc-linux-gnu/libgcc' make[2]: *** [all-stage1-target-libgcc] 错误 2

make[2]:正在离开目录 `/home/ligo/qttools/gcc/gcc-4.7.0' make[1]: *** [stage1-bubble] 错误 2

make[1]:正在离开目录 `/home/ligo/qttools/gcc/gcc-4.7.0' make: *** [all] 错误 2

果然出现了在搜索其它问题时,也看到网上有说的问题,哎.....

搜索到 http://blog.chinaunix.net/uid-14753126-id-3148516.html,解决方法就是安装包,在命令行中输入:

apt-get install g++-multilib

然后询问是否安装,选择“Y”接受,开始下载。下载完后,很快就安装完成。为了保险,重新安装gcc: ./configure 没错,再

make

不一会儿又出错了,错误和上次一样!但那个安装,显然是已经成功了,这。。。。 5.08:

今天星期二了。

没辙了,就启动虚拟机瞎逛,不知不觉到了系统更新中,由于连网,所以看到了有几百个更新可用,大概看了一下,发现有些头文件可以更新,于是按照缺省的选择,又把去掉了一小部分绝对无用的更新,比如蓝牙、打印驱动什么的,然后开始更新,等了半天,终于更新完成,重启,再进到gcc目录,直接./configure,成功再make结果出现一样的错误。 进入/usr/include/gnu目录查看,里面有stubs.h和stubs-64.h文件,就是没有stubs-32.h文件。

自己在/usr/include下搜索,结果发现,在/usr/include/i386-linux-gnu/gnu中有这个文件(但没有64的那个,这个不用管),直接把它拷贝到/usr/include/gnu目录中,然后: make

过了一会儿,出错:

/usr/bin/ld: cannot find crti.o: No such file or directory collect2: error: ld returned 1 exit status make[3]: *** [libgcc_s.so] 错误 1

make[3]:正在离开目录 `/home/ligo/qttools/gcc/gcc-4.7.0/i686-pc-linux-gnu/libgcc' make[2]: *** [all-stage1-target-libgcc] 错误 2

make[2]:正在离开目录 `/home/ligo/qttools/gcc/gcc-4.7.0' make[1]: *** [stage1-bubble] 错误 2

make[1]:正在离开目录 `/home/ligo/qttools/gcc/gcc-4.7.0' make: *** [all] 错误 2 上网搜索,找

到 http://hi.http://www.china-audit.com//ch02221/blog/item/0a7368120cf73203dc5401e3.html(最后部分): 换装ubuntu64位系统后,升级到11.10后(经测试该方法也适用于12.04)编译程序又出现类似错误:

/usr/bin/ld: cannot find crt1.o: No such file or directory /usr/bin/ld: cannot find crti.o: No such file or directory /usr/bin/ld: cannot find -lgcc_s collect2: ld returned 1 exit status 解决办法:

export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu

sudo ln -sf /lib/x86_64-linux-gnu/libgcc_s.so.1 /usr/lib/x86_64-linux-gnu/libgcc_s.so 之前用的是LD_LIBRARY_PATH,于是我猜这里写错了,就用了LD_LIBRARY_PATH,同时手动到目录/usr/lib/x86_64-linux-gnu目录查看,发现这个目录为空!汗!刚刚看头文件是/usr/include/i386-linux-gnu,所以又在/usr/lib中查找i386-linux-gnu,果然发现了这个目录,打开一看,里面的目录和文件真多,查找crti.o文件,果然发现在这里,于是: export LD_LIBRARY_PATH=/usr/lib/i386-linux-gnu 再make,结果还是一样的错误,于是修改: export LIBRARY_PATH=/usr/lib/i386-linux-gnu 再make,等,等,等,半个小时过去了,突然: In file included from ../.././gcc/double-int.h:24:0, from ../.././gcc/tree.h:31, from ../.././gcc/c-lang.c:27:

/usr/local/include/gmp.h:515:12: error: ?std::FILE? has not been declared make[3]: *** [c-lang.o] 错误 1

make[3]:正在离开目录 `/home/ligo/qttools/gcc/gcc-4.7.0/host-i686-pc-linux-gnu/gcc' make[2]: *** [all-stage2-gcc] 错误 2

make[2]:正在离开目录 `/home/ligo/qttools/gcc/gcc-4.7.0' make[1]: *** [stage2-bubble] 错误 2

make[1]:正在离开目录 `/home/ligo/qttools/gcc/gcc-4.7.0' make: *** [all] 错误 2 操,又错了! 搜索

到 http://groups.google.com/group/mozilla.dev.static-analysis/tree/browse_frm/month/2008-04/df617beb564fa9b7?rnum=11&_done=/group/mozilla.dev.static-analysis/browse_frm/month/2008-04?,有一段: The only issue was the compiler error due to the

std::FILE in gmp.h header (4.2.1). That seems to be fixed with gmp 4.2.2. http://sagetrac.org/sage_trac/ticket/490.

这里不能用新版本,否则那gcc仍然编译不过,之前就已经说过了,而当前的这个版本有bug?无解。 又搜索到一

联系合同范文客服:xxxxx#qq.com(#替换为@)