Oralce Solaris 11 源碼安裝Qt 4.8.3

1. 通過Package Manager安裝gcc-4.5、developer-gnu、developer/icu

2. 將Qt 4.8.3的源碼解壓,進入源碼目錄後執行:

    ./configure -platform solaris-g++ -no-webkit  -no-qt3support -no-declarative >./configure.logs

    部分輸出:

... ...

Creating qmake. Please wait...
gmake: Nothing to be done for `first'.
rm -f endiantest.o
rm -f *~ core *.core
rm -f endiantest
rm -f Makefile
rm -f endiantest.o
rm -f *~ core *.core
rm -f endiantest
rm -f Makefile

        This target is using the GNU C++ compiler (solaris-g++).

        Recent versions of this compiler automatically include code for
        exceptions, which increase both the size of the Qt libraries and
        the amount of memory taken by your applications.

        You may choose to re-run configure with the -no-exceptions
        option to compile Qt without exceptions. This is completely binary
        compatible, and existing applications will continue to work.


Build type:    solaris-g++
Architecture:  i386

Build .................. libs tools examples demos docs translations
Configuration ..........  release shared dll largefile stl precompile_header mmx 3dnow sse sse2 sse3 ssse3 sse4_1 sse4_2 avx  minimal-config small-config medium-config large-config full-config phonon phonon-backend accessibility opengl reduce_exports ipv6 clock-gettime clock-monotonic getaddrinfo ipv6ifname getifaddrs system-jpeg system-png png system-tiff system-freetype system-zlib nis cups sun-libiconv glib gstreamer dbus openssl x11sm xshape xvideo xsync xrender mitshm fontconfig xkb icu concurrent xmlpatterns multimedia audio-backend svg script scripttools release
Debug .................. no
Qt 3 compatibility ..... no
QtDBus module .......... yes (run-time)
QtConcurrent code ...... yes
QtGui module ........... yes
QtScript module ........ yes
QtScriptTools module ... yes
QtXmlPatterns module ... yes
Phonon module .......... yes
Multimedia module ...... auto
SVG module ............. yes
WebKit module .......... no
JavaScriptCore JIT ..... To be decided by JavaScriptCore
Declarative module ..... no
Support for S60 ........ no
Symbian DEF files ...... no
STL support ............ yes
PCH support ............ yes
MMX/3DNOW/SSE/SSE2/SSE3. yes/yes/yes/yes/yes
SSSE3/SSE4.1/SSE4.2..... yes/yes/yes
AVX..................... yes
Graphics System ........ default
IPv6 support ........... yes
IPv6 ifname support .... yes
getaddrinfo support .... yes
getifaddrs support ..... yes
Accessibility .......... yes
NIS support ............ yes
CUPS support ........... yes
Iconv support .......... sun
Glib support ........... yes
GStreamer support ...... yes
PulseAudio support ..... no
Large File support ..... yes
GIF support ............ plugin
TIFF support ........... plugin (system)
JPEG support ........... plugin (system)
PNG support ............ yes (system)
MNG support ............ plugin (qt)
zlib support ........... system
Session management ..... yes
OpenGL support ......... yes (Desktop OpenGL)
OpenVG support ......... no
NAS sound support ...... no
XShape support ......... yes
XVideo support ......... yes
XSync support .......... yes
Xinerama support ....... runtime
Xcursor support ........ runtime
Xfixes support ......... runtime
Xrandr support ......... runtime
Xrender support ........ yes
Xi support ............. no
MIT-SHM support ........ yes
FontConfig support ..... yes
XKB Support ............ yes
immodule support ....... yes
GTK theme support ...... yes
SQLite support ......... plugin (qt)
OpenSSL support ........ yes (run-time)
Alsa support ........... no
ICD support ............ no
libICU support ......... yes

Finding project files. Please wait...

... ...


Qt is now configured for building. Just run 'gmake'.
Once everything is built, you must run 'gmake install'.
Qt will be installed into /usr/local/Trolltech/Qt-4.8.3

To reconfigure, run 'gmake confclean' and 'configure'.

3. 執行:

    gmake

    ... ...

    編譯過程中遇到錯誤:

        std::_List_node_base::_M_hook(std::_List_node_base*)

        std::_List_node_base::_M_unhook()

        ... ...

    解決辦法:在生成的Makefile中的LFLAGS項後面追加 -Wl,-R,/usr/gcc/4.5/lib和LIBS前面追加-L/usr/gcc/4.5/lib

                      或者在第二步configure時通過 -L補上該內容。

        參考:http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43882

        Yuri          2010-04-25 01:17:04 UTC       

Sorry, my bad.

It really was picking up the default libstdc++.so from the OS installation. I
used -R/path/to/4.5.0/libstdc++.so to fix this library path. But it turns out
that -L/path/to/4.5.0/libstdc++.so is also required in addition to this,
otherwise the default libstdc++.so is looked up by linker.

Maybe this is a bug in linker, don't know.

But those new symbols revealed the problem.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章