1、Linux下安装QT的剧痛经历安装QT的惨痛经历目标:2012.4月下旬,计划开始在linux上安装QT和ffmpeg,准备摸索一下视频客户端的开发。-以下是安装过程-由于没有额外的电脑,所以使用了虚拟机安装。电脑上刚好有fedora6版本的linux,于是安装。在安装过程中选择了开发工具。安装完成,从官网下载最新的qt4.8.0,拷贝到一个目录中然后解压。进入目录后:./configure,选择开源“o”,并接受协议“yes”,2小时后,提示失败。找不到解决办法,后听说一般都用红帽企业版,后找来企业版5.5安装。安装完成,然后把原始的qt卸载,计划安装新版本。结果无法安装,痛苦。由于原先的Q
2、T被卸载,所以又只好重装同一系统。完成后不再卸载原始的qt,但是无qtcreator,随后在nokia官网下载qtcreator成功,然后安装成功。但是无法启动,双击时无任何反应,汗。安装qtsdk,先:./configure,结果提示总线错误安装ffmpeg,先:./configure,结果提示总线错误又上nokia官网下载qtlib,结果下载下来的是qt4.8.1(文件名QtSdk-offline-linux-x86-v1.2.1.run,为方便,后面以表示之),按照说明,先修改文件的执行模式:chmod u+x ,成功,然后安装:./,仍然是错误:/root/Desktop/vmtool
3、/QtSdk-offline-linux-x86-v1.2.1.run: /usr/lib/libstdc+.so.6: version GLIBCXX_3.4.9 not found (required by /root/Desktop/vmtool/QtSdk-offline-linux-x86-v1.2.1.run)/root/Desktop/vmtool/QtSdk-offline-linux-x86-v1.2.1.run: /usr/lib/libstdc+.so.6: version GLIBCXX_3.4.11 not found (required by /root/Deskt
4、op/vmtool/QtSdk-offline-linux-x86-v1.2.1.run)/root/Desktop/vmtool/QtSdk-offline-linux-x86-v1.2.1.run: /lib/libc.so.6: version GLIBC_2.9 not found (required by /root/Desktop/vmtool/QtSdk-offline-linux-x86-v1.2.1.run)/root/Desktop/vmtool/QtSdk-offline-linux-x86-v1.2.1.run: /lib/libc.so.6: version GLIB
5、C_2.10 not found (required by /root/Desktop/vmtool/QtSdk-offline-linux-x86-v1.2.1.run)/root/Desktop/vmtool/QtSdk-offline-linux-x86-v1.2.1.run: /lib/libc.so.6: version GLIBC_2.11 not found (required by /root/Desktop/vmtool/QtSdk-offline-linux-x86-v1.2.1.run)/root/Desktop/vmtool/QtSdk-offline-linux-x8
6、6-v1.2.1.run: /lib/libc.so.6: version GLIBC_2.7 not found (required by /root/Desktop/vmtool/QtSdk-offline-linux-x86-v1.2.1.run)上网上搜索,说需要libstdc+.so.6.0.10,然后下载之,放入/usr/lib/中,并修改libstdc+.so.6的链接为此文件,然后继续安装,此报另外的错误(内容没有记下来),此时原来的文本文件编辑器gedit无法启动,直接崩溃。然后换回libstdc+.so.6的链接文件为原来的libstdc+.so.6.0.8,无解。再仔细看
7、nokia网站说明,似乎没有说支持企业版linux,而是支持ubuntu。然后下载ubuntu11.10的桌面版(基本上是最新的了),32位的。安装,过程中不能选择开发工具,但是等了好久,终于安装完成。查看,结果无qt,只好重新安装。这次直接安装qt4.8.1(qt-everywhere-opensource-src-4.8.1),解压,进入目录:./configure结果提示无g+,晕,明显是安装了gcc,竟然没有g+!后上网搜索g+,但似乎是集成在gcc里的,所以到官网http:/gcc.gnu.org/下载gcc最新版本4.7.0,这里有很多镜像站点,我从加拿大的一个站点上下载,速度相当
8、快,总大小有101MB。下载完成,放进虚拟机,拷贝到一个目录中,然后解压,进入目录,运行如下命令(只有2个目录3个文件):./install-sh结果提示错误,我晕啊。查看拷贝进来的压缩文件,只有183KB,而原始的是101MB,后重新拷贝,原来是上次没有拷贝完,但不知原因。解压后,目录里有很多文件夹和文件,这次正常了,再次进入,运行命令:./configure数分钟后,提示:checking for objdir. .libschecking for the correct version of gmp.h. noconfigure: error: Building GCC requires
9、 GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+.Try the -with-gmp, -with-mpfr and/or -with-mpc options to specifytheir locations. Source code for these libraries can be found attheir respective hosting sites as well as atftp:/gcc.gnu.org/pub/gcc/infrastructure/. See alsohttp:/gcc.gnu.org/install/prerequisites
10、.htmlfor additional info. Ifyou obtained GMP, MPFR and/or MPC from a vendor distribution package,make sure that you have installed both the libraries and the headerfiles. They may be located in separate packages.汗,还需要另外的三个库!上网搜索,结果在gcc官网的fpt站点上发现了它们,下载之,然后放入虚拟机中,拷贝到独立目录中,直接解压,然后进入gmp目录:./configure结果
11、提示如下:checking whether vsnprintf works. yeschecking whether sscanf needs writable input. nochecking for struct pst_processor.psp_iticksperclktick. nochecking for suitable m4. configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).没有m4(m4是什么东东?一头雾水),不管,进入mpc:./configure结果提示另
12、外一个错误(没有记录下来),my god,要死人了,也不管,进入mpfr目录,然后:./configure结果提示内容和gmp一样,放我一条生路吧$#!继续上网搜索m4,发现这是一个库,下载最新版本,然后解压再安装:./configuremakemake install非常顺利,成功!除了qtctreator一次性成功之外,这个是第二次了,爽。回过头安装gmp:./configure成功,再make也成功,继续make install又成功了,顺利啊,再安装mpc:./confgiure结果提示和上次一样,是有mpfr有关的,所以就先安装mpfr,成功,再安装mpc,也成功。松了口气。安装gc
13、c4.7.0:./configure结果错误还是一样,需要那3个库。晕,版本不对也不行啊,关键是有的库不好找,本来不想找,但现在看来不找还是不行,找就找了,终于找到了,下载地址:mpfr,mpc:http:/www.multiprecision.org/mpfr:http:/mpfr.loria.fr/mpfr-2.3.1/gmp:http:/gmplib.org/这次一定要下载对应的版本了,下载结束再安装(无需再安装m4了,之前安装好的),仍然按照正确的顺序:先gmp,再mpfr,最后mpc,顺利,又成功了。再安装gcc4.7.0:./configure几秒钟后结束,没有报错,心有喜。继续:
14、make满屏飞滚字母,这下有好戏看了,一边写这个文章,一边让它在那里滚吧。几十分钟过去了,它停住了!提示如下:checking for i686-pc-linux-gnu-gcc. /home/ligo/qttools/gcc-4.7.0/host-i686-pc-linux-gnu/gcc/xgcc -B/home/ligo/qttools/gcc-4.7.0/host-i686-pc-linux-gnu/gcc/ -B/usr/local/i686-pc-linux-gnu/bin/ -B/usr/local/i686-pc-linux-gnu/lib/ -isystem /usr/loc
15、al/i686-pc-linux-gnu/include -isystem /usr/local/i686-pc-linux-gnu/sys-includechecking for suffix of object files. configure: error: in /home/ligo/qttools/gcc-4.7.0/i686-pc-linux-gnu/libgcc:configure: error: cannot compute suffix of object files: cannot compileSee config.log for more details.make2:
16、* configure-stage1-target-libgcc 错误 1make2:正在离开目录 /home/ligo/qttools/gcc-4.7.0make1: * stage1-bubble 错误 2make1:正在离开目录 /home/ligo/qttools/gcc-4.7.0make: * all 错误 2上网上搜索到几个网址:http:/gcc.gnu.org/bugzilla/show_bug.cgi?id=40360http:/gcc.gnu.org/bugzilla/show_bug.cgi?id=35693http:/gcc.gnu.org/bugzilla/show
17、_bug.cgi?id=35577http:/gcc.gnu.org/bugzilla/show_bug.cgi?id=36248说的问题都很相似,但可能不是同一个版本。大致看了一下,有可能是mpfr库的路径造成的问题,于是想按照示例指定mpfr的路径,在终端上的查看mpfr的路径:whereis mpfr结果显示为空!竟然没有安装成功?但是安装的过程中没有看到有错误产生。为了再看一遍是否成功,对mpfr重新安装了一遍,在make install结束后,离打印结束的位置很近的地方有如下提示:-Libraries have been installed in: /usr/local/libIf
18、you ever happen to want to link against installed librariesin a given directory, LIBDIR, you must either use libtool, andspecify the full pathname of the library, or use the -LLIBDIRflag during linking and do at least one of the following: - add LIBDIR to the LD_LIBRARY_PATH environment variable dur
19、ing execution - add LIBDIR to the LD_RUN_PATH environment variable during linking - use the -Wl,-rpath -Wl,LIBDIR linker flag - have your system administrator add LIBDIR to /etc/ld.so.confSee any operating system documentation about shared libraries formore information, such as the ld(1) and ld.so(8
20、) manual pages.-先不管,再:whereis mpfr结果还是显示为空,直接打开 /usr/local/lib,还是可以看见有mpfr库的:libmpfr.a、libmpfr.la、libmpfr.so.1.1.1、libmpfr.so.1.2.2,还有两个链接文件:libmpfr.so、libmpfr.so.1。指定路径的例子如下:./gcc-4.3.0/configure -with-gmp=/apps/gmp/4.2.2-with-mpfr=/apps/mpfr/2.3.0 -prefix=/apps/gcc/4.2.2-enable-languages=c,c+,fort
21、ran,java,objc,obj-c+,treelang重新进入gcc4.7.0目录:./configure -with-mpfr=/usr/local/lib几秒钟就结束了,没有发现错误。继续:make结果错误依旧。继续上网搜索,请参考网址:需要安装gmp与mpfr并且需要在.bash_profile(一般在/root目录下)配置LD_LIBRARY_PATH,把GMP与MPFR对应的lib配置上如:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpfr/2.4.0/lib:/usr/local/gmp/4.2.2/libexport LD_LIB
22、RARY_PATH一定要重启生效或者使用 source /root/.bash_profile但我不是root用户,无法进入这个目录,晕,root用户还没有开启,还得找方法。哎,惨痛啊,今天都5.4号了,1周多了,这环境还没有搞定,看来搞linux有饭吃,服务就能赚钱了。由于无法直接修改.bash_profile文件,所以就直接在命令行下胡乱试一下:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib然后再make,结果错误一样。继续搜索,找到了configure: error: cannot compute suffix of object file
23、s: cannot compile gcc Configure file cant find mpfr libsexport LD_LIBRARY_PATH=/usr/local/lib (if your mpfr is intalled in it)按照它,我输入:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib然后再make,结果又错了,但信息不一样:In file included from /usr/include/stdio.h:28:0, from ./././libgcc/./gcc/tsystem.h:88, from
24、 ./././libgcc/libgcc2.c:29:/usr/include/features.h:323:26: fatal error: bits/predefs.h:没有那个文件或目录compilation terminated.make3: * _muldi3.o 错误 1make3:正在离开目录 /home/ligo/qttools/gcc-4.7.0/i686-pc-linux-gnu/libgccmake2: * all-stage1-target-libgcc 错误 2make2:正在离开目录 /home/ligo/qttools/gcc-4.7.0make1: * stag
25、e1-bubble 错误 2make1:正在离开目录 /home/ligo/qttools/gcc-4.7.0make: * all 错误 2网上也找不到什么解决方法,我以为是自己可能把LD_LIBRARY_PATH变量给改坏了,用set看了一下,其值为:/usr/local/lib,usr/local/lib两个重复的没有啥特殊用途,于是重启虚拟机系统,再进入目录:./configure提示无权限,接着用su输入密码。这个用来提升权限,再./configure很快就成功,然后继续make结果又出错了:/home/ligo/qttools/gcc-4.7.0/host-i686-pc-linu
26、x-gnu/gcc/cc1: error while loading shared libraries: libmpfr.so.1: cannot open shared object file: No such file or directorymake3: * _muldi3.o 错误 1make3:正在离开目录 /home/ligo/qttools/gcc-4.7.0/i686-pc-linux-gnu/libgccmake2: * all-stage1-target-libgcc 错误 2make2:正在离开目录 /home/ligo/qttools/gcc-4.7.0make1: *
27、 stage1-bubble 错误 2make1:正在离开目录 /home/ligo/qttools/gcc-4.7.0make: * all 错误 2和之前不一样。似乎又是mpfr的问题,但是进入/usr/local/lib查看,libmpfr.so.1还是在的,而且其链接的那个文件也同样存在,怎么可能打不开呢?5.07:今天启动虚拟机,然后直接输入set查看LD_LIBRARY_PATH的值,结果不存在这个坏境变量,于是设置它:export LD_LIBRARY_PATH=/usr/local/lib然后再进入gcc-4.7.0目录:./configure成功,再make结果还是失败:/u
28、sr/include/features.h:323:26: fatal error: bits/predefs.h:没有那个文件或目录看来一定要查看这个文件是什么了,网上搜索到解决方法:确定你的系统是x86_64 GNU/Linuxrootmm-desktop:/home/mm/android# uname -a Linux mm-desktop 2.6.27-9-generic #1 SMP Thu Nov 20 22:15:32 UTC 2008 x86_64 GNU/Linux安装libc6-dev-i386 sudo apt-get install libc6-dev-i386不管了,
29、直接输入命令看能否解决:sudo apt-get install libc6-dev-i386结果显示:末发现软件包libc6-dev-i386,没有办法,上网上又搜索到编译过程中出错,报错是fatal error: bits/predefs.h:没有那个文件或目录compilation terminated. ,需要安装包multilib, 命令为 $sudo apt-get install gcc-multilib我在命令行中输入:sudo apt-get install gcc-multilib结果提示:现在没有可用的软件包 gcc-multilib,但是它被其它的软件包引用了。这可能意味着这个缺失的软件包可能已被废弃,或者只能在其
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1