您的位置:首页 > 编程语言 > Qt开发

Solaris 10 CC 、Solaris 11 Gcc 4.8.2 编译 Qt 4.8.6 备记

2014-09-12 20:12 405 查看
Solaris 10 CC :
Configure:

./configure -no-qt3support -nomake demos -nomake examples -nomake test -release -platform solaris-cc -prefix /export/home/app/qt/4.8.6 -L/opt/SUNWmlib/lib -L/opt/SUNWits/Graphics-sw/xil/lib -I/opt/SUNWmlib/include -I/usr/lib/gnome-private/lib/dbus-1.0/include
-I/usr/lib/gnome-private/include/dbus-1.0 -webkit -declarative -script

结果是script、declarative和webkit还是不给编译。

不管这个,configure完成后执行dmake,编译gui模块式出错,错误源文件为qfiledialog.cpp,代码(884~888行)修改如下:

//#if defined(Q_OS_SOLARIS) && defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE - 0 < 199506L)

tmpPw = getpwnam_r(userName.toLocal8Bit().constData(), &pw, buf, bufSize);

/*#else

err = getpwnam_r(userName.toLocal8Bit().constData(), &pw, buf, bufSize, &tmpPw);

#endif*/

继续编译,dmake完成后执行dmake install。

然后依次进入src下的script、scripttools、declarative、phonon目录编译(dmake、dmake install)

进入src下的dbus下,修改qdbusunixfiledescriptor.h,将其中的#ifndef QT_NO_DBUS前添加代码#undef QT_NO_DBUS,然后再编译(dmake、dmake install)

好不好使,先编了再说

Solaris 11 Gcc 4.8.2:

需要在线更新并安装icu开发支持包

configure时候不会把script及webkit排除在外,在编译webkit时需要修改几处源码:

qt-everywhere-enterprise-src-4.8.6/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Threading.h 104、116行注释掉(yield()与unistd.h中定义的冲突)

qt-everywhere-enterprise-src-4.8.6/src/3rdparty/webkit/Source/JavaScriptCore/heap/MachineStackMarker.cpp 394行插入 :

#elif OS(SOLARIS)

pthread_attr_init(®s);

qt-everywhere-enterprise-src-4.8.6/src/3rdparty/webkit/Source/WebCore/platform/sql/SQLiteDatabase.cpp 39行插入(yield()):

#include <unistd.h>

继续gmake......



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: