solaris 10 安装 qt4.8.3 .

来源:互联网 发布:wcf 数据库 编辑:程序博客网 时间:2024/06/14 21:18

转帖自http://blog.csdn.net/ilearncpp/article/details/8235612

 

 

1 下载qt4.8.3源码包:

    http://qt-project.org/downloads

    得到 qt-erverwhere-opensource-src-4.8.3.tar.gz之后,拷贝至solaris并解压(遇到问题:在solaris10中只能解压部分文件,不能全解,因此先在ubuntu12.04中解压好,再传文件到solaris10),将解压好的文件存放在指定solaris的目录下(例如:/opt/qt-x11-4.8.3)

2 查看qt官方文档步骤:

  • ./configure
  • gmake
  • gmake install
    如果编译器安装好,而且 ./configure成功,一般不出问题。自己在安装时出问题如下:
    错误1:配置错误

     在./configure时出错:gmake:CC:cammond not found

     出错原因:因为设置编译器为CC,但实际编译器是gcc和g++。CC没有link到gcc和g++。

    解决办法:

     在 /etc/profile(全局起作用)或者 $HOME/.profile(相应用户起作用)文件中添加如下脚本

      

PATH=/usr/ccs/bin:.:/usr/sbin:/usr/bin:/usr/ucb:/etc:.:/opt/SUNWspro/bin:/usr/ccs/bin:/usr/openwin/bin: export PATH QTDIR=/usr/local/Qt-4.8.3 export QTDIR PATH=$PATH:$QTDIR/bin export PATH QMAKESPEC=/opt/qt-x11-4.8.3/mkspecs/solaris-g++ export QMAKESPE

  
QMAKESPEC=/qt源码包存放目录/makespecs/选定的编译器, 注意要与solaris系统的编译器对应。如:用solaris-cc就如上报错,改为solaris-g++则通过 ./configure。

 

    错误2:gmake错误

        在solaris上使用gmake,但是到一半时出错:

../3rdparty/harfbuzz/src/harfbuzz-buffer.c: In function `HB_Error hb_buffer_ensure(HB_BufferRec_*, HB_UInt)':../3rdparty/harfbuzz/src/harfbuzz-buffer.c:77: error: invalid conversion from `void*' to `HB_PositionRec_*'../3rdparty/harfbuzz/src/harfbuzz-buffer.c:81: error: invalid conversion from `void*' to `HB_GlyphItemRec_*'../3rdparty/harfbuzz/src/harfbuzz-buffer.c:86: error: invalid conversion from `void*' to `HB_GlyphItemRec_*'../3rdparty/harfbuzz/src/harfbuzz-buffer.c:97: error: invalid conversion from `void*' to `HB_GlyphItemRec_*'../3rdparty/harfbuzz/src/harfbuzz-buffer.c: In function `HB_Error hb_buffer_duplicate_out_buffer(HB_BufferRec_*)':../3rdparty/harfbuzz/src/harfbuzz-buffer.c:115: error: invalid conversion from `void*' to `HB_GlyphItemRec_*'../3rdparty/harfbuzz/src/harfbuzz-buffer.c: In function `HB_Error hb_buffer_new(HB_BufferRec_**)':../3rdparty/harfbuzz/src/harfbuzz-buffer.c:134: error: invalid conversion from `void*' to `HB_BufferRec_*'../3rdparty/harfbuzz/src/harfbuzz-buffer.c: In function `HB_Error _hb_buffer_clear_positions(HB_BufferRec_*)':../3rdparty/harfbuzz/src/harfbuzz-buffer.c:215: error: invalid conversion from `void*' to `HB_PositionRec_*'gmake[1]: *** [.obj/release-shared/harfbuzz-buffer.o] Error 1gmake[1]: Leaving directory `/opt/qt-x11-4.8.3/src/corelib'gmake: *** [sub-corelib-make_default-ordered] Error 2

    原因:

          1  源代码文件 /opt/qt-x11-4.8.3/src/corelib 的makefile出错  ,从gmake进入或离开目录得知(make[1]: Leaving directory `/opt/qt-x11-4.8.3/src/corelib'),

CC=g++CXX=g++
如此,编译c文件就用g++编译,但c++有严格的类型检查,因此出现如上错误。另外,在进入opt/qt-x11-4.8.3/src/gui时,也是同样的问题,同样修改makefile解决。

           2  可能是gcc版本原因,solaris 10自带gcc 3.4.3,重新安装了gcc3.4.6

   解决办法:

        1 修改相应目录下的makefile文件,使得 用gcc编译c源文件

CC=gccCXX=g++
         2 下载gcc3.4.6源码,并安装,不要用 gcc3.4.3。 (可能用gcc3.4.3也能通过,这个不确定,可以试试)
0 0
原创粉丝点击