[webkit-qt] undefined reference to `QWebPage::view() const and others on Fedora 11 x86_64

Michael [Plouj] Ploujnikov ploujj at gmail.com
Tue Nov 17 06:46:21 PST 2009


I'm trying to build the Qt port of WebKit under Fedora 11 x86_64 and
I'm running into some strange linker errors.

I'm using the current SVN trunk code from
http://svn.webkit.org/repository/webkit

I have the following Qt RPM packages installed on my system:
qt-4.5.3-7.fc11.x86_64
qt-4.5.3-7.fc11.i586
qt-devel-4.5.3-7.fc11.x86_64

I use the following command to initiate the build:
QTDIR=/usr/lib64/qt4/ PATH=$QTDIR/bin:$PATH
./WebKitTools/Scripts/build-webkit --qt

My build fails with the following messages:
make[1]: Entering directory
`/home/plouj/work/WebKit/WebKitBuild/Release/WebKit/qt/QtLauncher'
/usr/lib64/qt4/bin/moc -DBUILDING_QT__=1 -DNDEBUG -DQT_NO_DEBUG
-DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB
-I/usr/lib64/qt4/mkspecs/linux-g++
-I/home/plouj/work/WebKit/WebKit/qt/QtLauncher
-I/usr/include/QtUiTools -I/usr/include/QtCore
-I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include/QtXml
-I/usr/include -I/home/plouj/work/WebKit/WebKit/qt/Api
-I/home/plouj/work/WebKit/WebKitBuild/Release/WebKit/qt/QtLauncher/.
-I/home/plouj/work/WebKit/WebKit/qt/QtLauncher -I.
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp -o main.moc
g++ -c -pipe -Wall -Wreturn-type -fno-strict-aliasing -Wcast-align
-Wchar-subscripts -Wformat-security -Wreturn-type
-Wno-unused-parameter -Wno-sign-compare -Wno-switch -Wno-switch-enum
-Wundef -Wmissing-noreturn -Winit-self -O2 -g -pipe -Wall
-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4
-m64 -mtune=generic -D_REENTRANT -DBUILDING_QT__=1 -DNDEBUG
-DQT_NO_DEBUG -DQT_XML_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB
-I/usr/lib64/qt4/mkspecs/linux-g++
-I/home/plouj/work/WebKit/WebKit/qt/QtLauncher
-I/usr/include/QtUiTools -I/usr/include/QtCore
-I/usr/include/QtNetwork -I/usr/include/QtGui -I/usr/include/QtXml
-I/usr/include -I/home/plouj/work/WebKit/WebKit/qt/Api
-I/home/plouj/work/WebKit/WebKitBuild/Release/WebKit/qt/QtLauncher/.
-I/home/plouj/work/WebKit/WebKit/qt/QtLauncher -I. -o main.o
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp
g++ -Wl,-O1 -Wl,-rpath,/home/plouj/work/WebKit/WebKitBuild/Release/lib
-o ../../../bin/QtLauncher main.o
-L/home/plouj/work/WebKit/WebKitBuild/Release/lib -lQtWebKit -lQtXml
-lQtGui -lQtNetwork -lQtCore -lQtUiTools -lpthread
main.o: In function `WebPage::createPlugin(QString const&, QUrl
const&, QStringList const&, QStringList const&)':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:416: undefined
reference to `QWebPage::view() const'
main.o: In function `MainWindow::loadFinished()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:161: undefined
reference to `QWebView::url() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:167: undefined
reference to `QWebView::url() const'
main.o: In function `MainWindow::zoomOut()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:200: undefined
reference to `QWebView::setZoomFactor(double)'
main.o: In function `MainWindow::resetZoom()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:206: undefined
reference to `QWebView::setZoomFactor(double)'
main.o: In function `MainWindow::toggleZoomTextOnly(bool)':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:211: undefined
reference to `QWebView::page() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:211: undefined
reference to `QWebPage::settings() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:211: undefined
reference to `QWebSettings::setAttribute(QWebSettings::WebAttribute,
bool)'
main.o: In function `MainWindow::dumpHtml()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:257: undefined
reference to `QWebView::page() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:257: undefined
reference to `QWebPage::mainFrame() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:257: undefined
reference to `QWebFrame::toHtml() const'
main.o: In function `MainWindow::setEditable(bool)':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:240: undefined
reference to `QWebView::page() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:240: undefined
reference to `QWebPage::setContentEditable(bool)'
main.o: In function `MainWindow::webPage() const':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:141: undefined
reference to `QWebView::page() const'
main.o: In function `main':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:507: undefined
reference to `QWebSettings::setMaximumPagesInCache(int)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:514: undefined
reference to `QWebSettings::setObjectCacheCapacities(int, int, int)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:516: undefined
reference to `QWebSettings::globalSettings()'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:516: undefined
reference to `QWebSettings::setAttribute(QWebSettings::WebAttribute,
bool)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:517: undefined
reference to `QWebSettings::globalSettings()'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:517: undefined
reference to `QWebSettings::setAttribute(QWebSettings::WebAttribute,
bool)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:518: undefined
reference to `QWebSettings::enablePersistentStorage(QString const&)'
main.o: In function `URLLoader::loadNext()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:443: undefined
reference to `QWebView::load(QUrl const&)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:443: undefined
reference to `QWebView::load(QUrl const&)'
main.o: In function `~WebPage':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:70: undefined
reference to `QWebPage::~QWebPage()'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:70: undefined
reference to `QWebPage::~QWebPage()'
main.o: In function `MainWindow::setupUI()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:307: undefined
reference to `QWebView::pageAction(QWebPage::WebAction) const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:308: undefined
reference to `QWebView::pageAction(QWebPage::WebAction) const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:309: undefined
reference to `QWebView::pageAction(QWebPage::WebAction) const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:310: undefined
reference to `QWebView::pageAction(QWebPage::WebAction) const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:322: undefined
reference to `QWebView::pageAction(QWebPage::WebAction) const'
main.o:/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:323: more
undefined references to `QWebView::pageAction(QWebPage::WebAction)
const' follow
main.o: In function `URLLoader::loadNext()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:443: undefined
reference to `QWebView::load(QUrl const&)'
main.o: In function `MainWindow::selectElements()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:266: undefined
reference to `QWebView::page() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:266: undefined
reference to `QWebPage::mainFrame() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:266: undefined
reference to `QWebFrame::findAllElements(QString const&) const'
main.o: In function `QForeachContainer':
/usr/include/QtCore/qglobal.h:2059: undefined reference to
`QWebElementCollection::QWebElementCollection(QWebElementCollection
const&)'
main.o: In function `QWebElementCollection::constEnd() const':
/home/plouj/work/WebKit/WebKit/qt/Api/qwebelement.h:221: undefined
reference to `QWebElementCollection::count() const'
main.o: In function `QWebElementCollection::const_iterator::operator*() const':
/home/plouj/work/WebKit/WebKit/qt/Api/qwebelement.h:194: undefined
reference to `QWebElementCollection::at(int) const'
main.o: In function `MainWindow::selectElements()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:268: undefined
reference to `QWebElement::setStyleProperty(QString const&, QString
const&)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:268: undefined
reference to `QWebElement::~QWebElement()'
main.o: In function `~QForeachContainer':
/usr/include/QtCore/qglobal.h:2057: undefined reference to
`QWebElementCollection::~QWebElementCollection()'
main.o: In function `MainWindow::selectElements()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:269: undefined
reference to `QWebElementCollection::count() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:269: undefined
reference to `QWebElementCollection::~QWebElementCollection()'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:269: undefined
reference to `QWebElementCollection::~QWebElementCollection()'
main.o: In function `QForeachContainer':
/usr/include/QtCore/qglobal.h:2059: undefined reference to
`QWebElementCollection::~QWebElementCollection()'
main.o: In function `~QForeachContainer':
/usr/include/QtCore/qglobal.h:2057: undefined reference to
`QWebElementCollection::~QWebElementCollection()'
main.o: In function `MainWindow::selectElements()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:268: undefined
reference to `QWebElement::~QWebElement()'
main.o: In function `MainWindow::changeLocation()':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:156: undefined
reference to `QWebView::load(QUrl const&)'
main.o: In function `MainWindow':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:97: undefined
reference to `QWebView::QWebView(QWidget*)'
main.o: In function `WebPage':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:72: undefined
reference to `QWebPage::QWebPage(QObject*)'
main.o: In function `MainWindow':
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:99: undefined
reference to `QWebView::setPage(QWebPage*)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:105: undefined
reference to `QWebView::page() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:106: undefined
reference to `QWebView::page() const'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:108: undefined
reference to `QWebInspector::QWebInspector(QWidget*)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:109: undefined
reference to `QWebInspector::setPage(QWebPage*)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:130: undefined
reference to `QWebView::load(QUrl const&)'
/home/plouj/work/WebKit/WebKit/qt/QtLauncher/main.cpp:120: undefined
reference to `QWebPage::networkAccessManager() const'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0x10): undefined
reference to `QWebPage::metaObject() const'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0x18): undefined
reference to `QWebPage::qt_metacast(char const*)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0x20): undefined
reference to `QWebPage::qt_metacall(QMetaObject::Call, int, void**)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0x38): undefined
reference to `QWebPage::event(QEvent*)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0x70): undefined
reference to `QWebPage::triggerAction(QWebPage::WebAction, bool)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0x98): undefined
reference to `QWebPage::acceptNavigationRequest(QWebFrame*,
QNetworkRequest const&, QWebPage::NavigationType)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0xa0): undefined
reference to `QWebPage::chooseFile(QWebFrame*, QString const&)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0xa8): undefined
reference to `QWebPage::javaScriptAlert(QWebFrame*, QString const&)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0xb0): undefined
reference to `QWebPage::javaScriptConfirm(QWebFrame*, QString const&)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0xb8): undefined
reference to `QWebPage::javaScriptPrompt(QWebFrame*, QString const&,
QString const&, QString*)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0xc0): undefined
reference to `QWebPage::javaScriptConsoleMessage(QString const&, int,
QString const&)'
main.o:(.rodata._ZTV7WebPage[vtable for WebPage]+0xc8): undefined
reference to `QWebPage::userAgentForUrl(QUrl const&) const'
main.o:(.rodata._ZTI7WebPage[typeinfo for WebPage]+0x10): undefined
reference to `typeinfo for QWebPage'
collect2: ld returned 1 exit status
make[1]: *** [../../../bin/QtLauncher] Error 1
make[1]: Leaving directory
`/home/plouj/work/WebKit/WebKitBuild/Release/WebKit/qt/QtLauncher'
make: *** [sub-WebKit-qt-QtLauncher-make_default-ordered] Error 2

I noticed that I don't see those symbols in libQtWebKit.so according
to this command:
nm WebKitBuild/Release/lib/libQtWebKit.so.4.5.3 |grep QWeb

Has anyone experienced and solved this problem? My guess is that
necessary linker flags are not being added somewhere. Where should I
look to check this? I'm not familiar with the build system.

-- 
http://plouj.com/


More information about the webkit-qt mailing list