Qt5.3.2_CentOS6.4_基本编程环境__20160306【勿删,繁琐】

摘要:
4.3下载“libstdc++6_4.7.2-5_i386.deb”并解压缩“libstdc++6_4.72-5_i386.dab”以获得文件夹“libstdc++6_4.72-5_id86”。解压缩文件“data.tar.gz”以获得文件夹“usr”

20160306 全程没有f/q

ZC:使用的虚拟机环境是:博客园VMwareSkill 的 “CentOS6.4_x86_120g__20160306.rar

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
线程模型:posix
gcc 版本 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
线程模型:posix
gcc 版本 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.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_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.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_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]# ./qtcreator
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)
[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",出现了报错信息:

Qt5.3.2_CentOS6.4_基本编程环境__20160306【勿删,繁琐】第1张

  由于本人的 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、

免责声明:文章转载自《Qt5.3.2_CentOS6.4_基本编程环境__20160306【勿删,繁琐】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇laravel的monolog使用vue element UI el-table 单元格中超出字省略号显示下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows 下openssl安装与配置

编译thirift失败 网上方法很多,大部分是针对32位机的,自己的电脑因为是win7,64位,摸索了很久才安装成功.   环境 WIN7, 64位, vs2005   下载ActivePerl 配置过程中需要生成一些mak文件,这些生成代码用perl脚本生成,所以要安装一个ActivePerl.   网址: http://www.activestate...

如何让您的php也支持pthreads多线程

  我们常常会碰到这样一种情况,开发环境在windows下开发,而生产环境确是linux。windows下能正常运行,上传到linux后却无法好好地玩耍了。然后开始了一轮尼玛式的疯狂的查找原因,最后发现是服务器环境问题。这时只能默默地爆一句shit。最近在用php多线程开发一个小功能也碰到类似的问题,在此记录一下。   1、查找资料发现php5.3或以上,...

Linux下boost库的编译、安装详解

下载boost源码 boost下载地址 解压到一个目录 tar -zxvf boost_1_66_0.tar.gz 1、正常编译: 进入boost_1_66_0目录中 cd boost_1_66_0 ./bootstrap.sh --with-libraries=all --with-toolset=gcc --with-liraries:需要编译的库...

CVE2016-8863libupnp缓冲区溢出漏洞原理分析及Poc

1、libupnp问题分析: (1)问题简述: 根据客户给出的报告,通过设备安装的libupnp软件版本来判断,存在缓冲区溢出漏洞:CVE-2016-8863。 (2)漏洞原理分析:          该漏洞发生在upnpSDK库中,upnp/src/gena/gena_device.c.文件的create_url_list函数中,由于对输入数据未进行有效...

FUSE简介

什么是FUSE 传统的文件系统是操作系统的一部分,放在操作系统内核里面实现。Fuse(Filesystem in Userspace), 一个用户空间文件系统框架,提供给我们一组用于实现一个文件系统的API,使我们可以在用户态实现自已的文件系统。 FUSE的优缺点 1)传统文件系统都是定义在操作系统内核层面上的,要操作系统识别一种新的文件系统,必需重写内核...

SVN图形管理工具-Submint

1.安装svn及相关依赖包 yum install subversion httpd mod_dav_svn apr-util-sqlite   2.下载submin wget https://supermind.nl/submin/current/submin-2.2.2-1.tar.gz tar zxvf submin-2.2.2-1.tar.g...