[webkit-qt] Trouble building QtWebKit

Andras Becsi abecsi at inf.u-szeged.hu
Fri Mar 25 06:28:19 PDT 2011


FYI: there is a bug for this issue:

https://bugs.webkit.org/show_bug.cgi?id=56723

BR,
Andras

On Mon, 21 Mar 2011 19:33:14 +0100, Srinath Avadhanula  
<srinathava at gmail.com> wrote:

> Hi,
>
> After some digging around, I finally figured out what was going on. I
> am capturing it here for the sake of the next guy who might have the
> same problem and uses google...
>
> On Fri, Mar 18, 2011 at 8:47 PM, Srinath Avadhanula
> <srinathava at gmail.com> wrote:
>>
>> make[2]: Entering directory  
>> `/local/savadhan/tmp/webkit/WebKitBuild/Release/WebKit/qt/tests/qwebframe'
>> g++ -m64 -Wl,-O1  
>> -Wl,-rpath,/local/savadhan/tmp/webkit/WebKitBuild/Release/lib  
>> -Wl,-rpath,/local/savadhan/QtSDK/Desktop/Qt/472/gcc/lib -o  
>> tst_qwebframe obj/release/tst_qwebframe.o  
>> obj/release/qrc_tst_qwebframe.o     
>> -L/local/savadhan/tmp/webkit/WebKitBuild/Release/lib  
>> -L/local/savadhan/QtSDK/Desktop/Qt/472/gcc/lib -lQtWebKit  
>> -lQtDeclarative -lQtTest -lQtGui -lQtNetwork -lQtCore -lpthread
>> obj/release/tst_qwebframe.o: In function  
>> `MyQObject::qt_metacall(QMetaObject::Call, int, void**)':
>> tst_qwebframe.cpp:(.text+0xfe5): undefined reference to  
>> `QWebElement::QWebElement(QWebElement const&)'
>> tst_qwebframe.cpp:(.text+0xff0): undefined reference to  
>> `QWebElement::operator=(QWebElement const&)'
>
> It turns out that QWEBKIT_EXPORT is actually defined to be nothing. In
> other words, in qwebkitglobal.h, the macro falls through to line #45
> of the following:
>
>     41	#if !defined(QWEBKIT_EXPORT)
>     42	#  if defined(QT_SHARED)
>     43	#    define QWEBKIT_EXPORT Q_DECL_EXPORT
>     44	#  else
>     45	#    define QWEBKIT_EXPORT
>     46	#  endif
>     47	#endif
>
> I made sure this is the case by putting in an extra definition to
> QWEBKIT_EXPORT around line #50. The compiler then complained about a
> redundant declaration and pointed to line #45 as the previous
> declaration. I also verified this by dumping the preprocessor output
> to a text file and ensuring that I did not  see a
> __attribute__((visibility("default"))) around the QWebElement class
> declaration in qwebelement.h.
>
> Moreover qwebelement.cpp is compiled with -fno-visbility. This means
> that this symbol is never exported from libQtWebKit.so. This is why
> there were a whole bunch of undefined symbol linker errors when
> building the tests. I modified qwebkitglobal.h #45 to just #define
> QWEBKIT_EXPORT to Q_DECL_EXPORT and now I can get the whole thing
> built. I am not quite sure where QT_SHARED is supposed to be declared
> and why it is undefined in my build. It doesn't seem to be #defined
> anywhere in the Qt include files and the QtWebKit build instructions
> do not mention anything about this.
>
> But for now, this works for me and I got a working
> libQtWebKit.so.4.9.0 built against Qt 4.7.2.
>
> Regards,
> Srinath
> _______________________________________________
> webkit-qt mailing list
> webkit-qt at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-qt


More information about the webkit-qt mailing list