20160306 全程没有f/q
ZC:使用的虚拟机环境是:博客园VMwareSkill 的 “”
1、
执行命令“gcc -v”,显示:
“
[root@centos ~]# gcc -v
bash: gcc: command not found[root@centos ~]#”
说明没有 c/c++编程环境
2、
安装 Qt5.3.2(qt-opensource-linux-x86-5.3.2.run),安装在默认位置“/opt/Qt5.3.2”,完全安装(源码也装了)。
PS:装好Qt5.3.2后,发现还是没有 gcc ...
3、
安装 C/C++,命令:
yum install gcc-c++
安装完毕后,执行“gcc -v”和“g++ -v”,显示如下信息:
“
[root@centos ~]# gcc -v
使用内建 specs。目标:i686-redhat-linux配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux线程模型:posixgcc 版本 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) [root@centos ~]# g++ -v使用内建 specs。目标:i686-redhat-linux配置为:../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux线程模型:posixgcc 版本 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) [root@centos ~]#”
4、
4.1、
此时,运行 qtcreator,有如下错误信息:
“
[root@centos bin]# pwd
/opt/Qt5.3.2/Tools/QtCreator/bin[root@centos bin]# ./qtcreator(<unknown>:3324): Gtk-WARNING **: Attempt to load unknown IM context type 'gtk-im-context-none'
核心载入失败: /opt/Qt5.3.2/Tools/QtCreator/lib/qtcreator/plugins/libCore.so: 无法加载库/opt/Qt5.3.2/Tools/QtCreator/lib/qtcreator/plugins/libCore.so:(/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /opt/Qt5.3.2/Tools/QtCreator/lib/qtcreator/plugins/libCore.so))[root@centos bin]#”
也就是说,需要 版本为GLIBCXX_3.4.14 的 libstdc++.so.6 。
4.2、
执行命令“strings /usr/lib/libstdc++.so.6 | grep GLIBCXX”,显示如下信息:
“
[root@centos ~]# strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH[root@centos ~]#”
可见,本机只有 版本为GLIBCXX_3.4.13 的 libstdc++.so.6 。
4.3、
下载“libstdc++6_4.7.2-5_i386.deb”
解压“libstdc++6_4.7.2-5_i386.deb”,得到 文件夹"libstdc++6_4.7.2-5_i386"(里面的文件为:control.tar.gz、data.tar.gz 和 debian-binary),解压 文件"data.tar.gz" 得到 文件夹"usr",将 这里的"usr/lib/i386-linux-gnu"里面的“libstdc++.so.6”和“libstdc++.so.6.0.17” copy到“/usr/lib/”目录下。提示 需要覆盖文件"libstdc++.so.6",确认覆盖。(这样直接覆盖"libstdc++.so.6"的话,就不需要做网页里面的 软连接的断开和重建 工作了)(或者将原来的文件 改名 或者 剪切到别的地方)4.4、
此时,已经有 版本为GLIBCXX_3.4.17 的 libstdc++.so.6 。
“
[root@centos ~]# strings /usr/lib/libstdc++.so.6 | grep GLIBCXX
GLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_DEBUG_MESSAGE_LENGTH[root@centos ~]#”
5、
编译 程序还需要 libGL:
yum install libGL-devel
6、
此时,再次运行 qtcreator,虽然能够打开qt,但是会有报错:
“
[root@centos bin]# pwd
/opt/Qt5.3.2/Tools/QtCreator/bin[root@centos bin]# ./qtcreator(<unknown>:3566): Gtk-WARNING **: Attempt to load unknown IM context type 'gtk-im-context-none'
QString::arg: Argument missing: 无法解析gtk_widget_send_focus_change中的符号“gtk_widget_send_focus_change”:gtk-x11-2.0, (/usr/lib/libgtk-x11-2.0.so.0: undefined symbol: gtk_widget_send_focus_change)QString::arg: Argument missing: 无法解析gtk_widget_send_focus_change中的符号“gtk_widget_send_focus_change”:gtk-x11-2.0, (/usr/lib/libgtk-x11-2.0.so.0: undefined symbol: gtk_widget_send_focus_change)QString::arg: Argument missing: 无法解析dbus_connection_can_send_type中的符号“dbus_connection_can_send_type”:dbus-1, (/lib/libdbus-1.so.3: undefined symbol: dbus_connection_can_send_type)QString::arg: Argument missing: 无法解析gtk_widget_send_focus_change中的符号“gtk_widget_send_focus_change”:gtk-x11-2.0, (/usr/lib/libgtk-x11-2.0.so.0: undefined symbol: gtk_widget_send_focus_change)QString::arg: Argument missing: 无法解析gtk_widget_send_focus_change中的符号“gtk_widget_send_focus_change”:gtk-x11-2.0, (/usr/lib/libgtk-x11-2.0.so.0: undefined symbol: gtk_widget_send_focus_change)[root@centos bin]#”
6.1、
在Qt安装好之后,执行打开目录的操作的时候,Qt都会莫名其妙的自动一闪关闭。
解决: 删掉某一个插件: “/Opt/Qt5.3.2/Tools/QtCreator/bin/plugins/platformthemes/libqgtk2.so”,将这个插件删掉。(注意,这里是 删掉,将其改名的话,Qt还是会去加载 重名后的插件的。或者 可以将它 剪切到别的地方去)PS:这样做了之后,上面的报错信息的"gtk-x11-2.0"部分也没有了,值留下了下面的信息:
“
[root@centos bin]# pwd
/opt/Qt5.3.2/Tools/QtCreator/bin[root@centos bin]# ./qtcreatorQString::arg: Argument missing: 无法解析dbus_connection_can_send_type中的符号“dbus_connection_can_send_type”:dbus-1, (/lib/libdbus-1.so.3: undefined symbol: dbus_connection_can_send_type)[root@centos bin]#”
6.2、
"dbus-1" 的问题,是∵ dbus太旧 qt太新 的缘故。
6.2.1、
dbus 又需要 expat,如果不先装 expat 的话,在 dbus 执行"configure"的过程中会报错:
“configure error explicitly requested expat but expat not found”
于是,安装 expat,使用如下命令:
yum install expat expat-devel
6.2.2、
到 http://dbus.freedesktop.org/releases/dbus/ 下载dbus的最新版本,我这里下载的是“dbus-1.10.6.tar.gz”。
解压后,得到目录“dbus-1.10.6”,进入目录“dbus-1.10.6”,执行命令:
./configure --prefix=/
make install
ZC-1: 如果 configure命令 是像上面那样("./configure --prefix=/"),那么"make install"之后,在 目录"/lib"下 新增了一些文件(如"libdbus-1.so.3.14.6","libdbus-1.so"等) 原来的文件"libdbus-1.so.3"也给修改了(现在指向了文件"libdbus-1.so.3.14.6")
ZC-2: 如果上面的 configure命令 写成这样:"./configure --prefix=/usr",那么新增的那些文件就会出现在 目录"/usr/lib"中。然后 在目录"/lib"中 删除libdbus-1.so和libdbus-1.so.3 两个文件(如果有的话),再在libdubs-1.so.3.8.3上鼠标右键创建连接创建两个文件,文件名是:libdbus-1.so和libdbus-1.so.3 。
6.2.3、
ZC:现在 dbus安装完毕了,那么上面解压出来的 目录"dbus-1.10.6" 能否删掉?现在没有把它删掉,待以后测试...
7、
到这里,基本的 程序可以创建起来了,也可以顺利的编译运行了。
ZC:此时,在命令行敲入"./qtcreator",不会有 错误/警告信息 被打印出来。
8、
问题:
发现 安装了 dbus之后,CentOS6.4 就关不了机了... 用虚拟机强制关机后再开机 也会有一些"FAILED"并且卡在某个模块的加载的地方...
我是在关机的时候,发现卡在那里,然后等了很久还是一直卡着,然后通过 CTRL+ALT+F1~F6 切换到命令行登录,然后执行"reboot",出现了报错信息:
由于本人的 Linux水平较低,尝试了一些安装dbs的方法,还是搞不定...于是只能选择放弃了...
ZC:我这里安装的CentOS6.4是完全没有带???的,尝试使用带???的CentOS6.4来弄。
9、
备用:
9.1、
安装“libstdc++-4.4.7.11.el6.i686”:
命令“yum install libstdc++-4.4.7.11.el6.i686”9.2、
“yun update”==> 这是把yum更新到最新(这一步,需要下载蛮多东西的,宽带不够 或者 虚拟机较卡 的话,这一步就跳过吧)
100、ZC
20160810: CentOS6.4x64尝试使用 命令"yum install dbus" / "yum update dbus" / "yum update dbus-devel" 来解决问题,但是 它们都说 已经更新到最新了... 打开 Qt532,"dbus_connection_can_send_type"的问题依旧,暂时先不管了... 貌似 Qt532暂时使用中还没发现什么问题,先用着在说吧...
101、