[Interest] Issues building Qt 5.4.0 on CentOS 5.

Simon Matthews simon at matthews.eu
Thu Feb 12 02:56:13 CET 2015



On Tue, 10 Feb 2015, Thiago Macieira wrote:

> On Tuesday 10 February 2015 22:34:20 Simon Matthews wrote:
>> ../../../../3rdparty/xcb/include/xcb/xcb_bitops.h:51: error: expected ‘=’,
>> ‘,’,  ‘;’, ‘asm’ or ‘__attribute__’ before ‘static’
>
> The one thing "before 'static'" is _X_INLINE.
>
> _X_INLINE is supposed to come from X11/Xfuncproto.h. Can you verify that yours 
> defines _X_INLINE?
>
> /* C99 keyword "inline" or equivalent extensions in pre-C99 compilers */
> /* requires xproto >= 7.0.9
>   (introduced in 7.0.8 but didn't support all compilers until 7.0.9) */
> #if defined(inline) /* assume autoconf set it correctly */ || \
>   (defined(__STDC_VERSION__) && (__STDC_VERSION__ - 0 >= 199901L)) /* C99 */ 
> || \
>   (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550))
> # define _X_INLINE inline
> #elif defined(__GNUC__) && !defined(__STRICT_ANSI__) /* gcc w/C89+extensions */
> # define _X_INLINE __inline__
> #else
> # define _X_INLINE
> #endif
>
> Given the comment about versions (X11 R7.0.8), I'm guessing your X11 headers 
> are also too old and don't include this.
>
> When is X.org 7.0.8 from? 2005 or 2006. That's current to Qt 4.1.

I took another approach, following the instructions on this page:
http://kate-editor.org/2014/12/22/qt-5-4-on-red-hat-enterprise-5/

This involves a small patch to the Qt sources, which seems to eliminate 
the issue with the kernel headers.

This build is successful, but does not include Webkit.

I think that Webkit is not included because the test for icu fails:
g++ -L /usr/local/lib -L /usr/local/lib/icu -I /usr/local/include/unicode/ 
-I /usr/local/include/layout/ 
./qtwebkit/Tools/qmake/config.tests/icu/icu.cpp
/tmp/ccq3GOLd.o: In function `main':
icu.cpp:(.text+0x33): undefined reference to `ucol_open_4_2'
icu.cpp:(.text+0x5d): undefined reference to `ucol_close_4_2'
collect2: error: ld returned 1 exit status

I have installed (from source) icu 4.2.1 and these symbols appear in the 
libraries:
strings /usr/local/lib/libicui18n.so.42.1 | grep "ucol_close_4_2"
ucol_close_4_2

The files appear to be the correct format:
file /usr/local/lib/libicui18n.so.42.1
/usr/local/lib/libicui18n.so.42.1: ELF 64-bit LSB shared object, AMD 
x86-64, version 1 (SYSV), not stripped

Simon




More information about the Interest mailing list