2015-07-21 9 views
0

Я построил Qt 5 libs из источника в Ubuntu 12.04 и сделал приложение для тестирования Qt. В файле .pro я написал QT += core gui webkitwidgets, чтобы использовать Qwebview в своем тестовом проекте.«неопределенная ссылка» при построении модуля webkitwidgets в самокомпилированном Qt5 из-за отсутствия библиотек ICU?

Но когда я бегу QMAKE в Qt Creator, то он дает мне ошибку:

Unknown module(s) in QT: webkitwidgets 

Я думаю WebKit или webkitwidgets модуль не строить источником, когда я построил Qt 5, освобождает от источника.

Итак, у меня есть модуль qtwebkit или webkitwdgtes из источника, как показано ниже.

cd qtwebkit  
qmake  
make -jX 

где X является количество ядер * 2 + 1

Но когда я бегу сделать команду, то я получил ниже ошибки.

StringImpl.cpp:(.text+0x64ad): undefined reference to u_strToUpper_51' 
StringImpl.cpp:(.text+0x6636): undefined reference to u_toupper_51' 
DatePrototype.cpp:(.text+0x328): undefined reference to udat_open_51' 
DatePrototype.cpp:(.text+0x366): undefined reference to udat_close_51' 
JSGlobalObjectFunctions.cpp:(.text+0x99f): undefined reference tou_charType_51' 
StringImpl.cpp:(.text+0xa00): undefined reference tou_foldCase_51' 
CollatorICU.cpp:(.text+0x1f1): undefined reference to ucol_getLocaleByType_51' CollatorICU.cpp:(.text+0x20f): undefined reference toucol_getAttribute_51' 
CollatorICU.cpp:(.text+0x25b): undefined reference to ucol_open_51' 
CollatorICU.cpp:(.text+0x27f): undefined reference toucol_open_51' 
CollatorICU.cpp:(.text+0x2a4): undefined reference to ucol_setAttribute_51' 

и многие другие такие неопределенные эталонные ошибки.

Также я обнаружил, что модуль qtwebkit использует библиотеку ICU (которые отсутствуют на моей машине).

Итак, как я могу построить библиотеки ICU в Ubuntu, чтобы модуль qtwebkit мог ссылаться на соответствующие библиотеки ICU, и я могу исправить эту ошибку ссылки и построить qtwebkit успешно.

+0

Есть ли веская причина не использовать собственную версию Qt Ubuntu? – Braiam

+0

Спасибо за ваш комментарий. У меня есть сборка icu libs из источника, как показано ниже. cd source && ./configure --prefix =/usr && make и установить то же самое, сделав install, теперь я могу получить icu libs по пути/usr/lib /, но все же я получаю те же неопределенные ссылочные ошибки когда я строю модуль qtwebkit из источника. – User2546

+0

Просто FYI, я получал по умолчанию совместимый с Qt 4.8.1 .so libs на пути/usr/lib/i386-linux-gnu/в Ubuntu 12.04. Но я хочу сделать deb QT 5.2.1 app в Ubuntu 12.04. Поэтому я установил установщик QT 5.2.1 в Ubuntu 12.04, а затем я успешно запускаю приложение QT 5 в qt-creator. Но когда я попытался сделать deb того же приложения, тогда вместо QT 5, который я установил из установщика, он берет ссылку на qt5 libs машины. – User2546

ответ

-2

Попробуйте установить пакет с APT-получить:

sudo apt-get install libqt5webkit5-dev 
+0

Я уже делал то же самое, но все равно получаю ту же проблему. – User2546

0

Я установил подобную ошибку, удалив библиотеки ICU из/Lib папки Qt. Если есть другая версия ICU, установленная для os libs, она конфликтует.

0

ли вы попробовать это ?:

sudo apt-get install libqt5webkit5-qmlwebkitplugin libqt5webkit5.

RESOURCES += \ 
    resources.qrc 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets webkit webkitwidgets 

Однако, и даже когда я сделал это работать для моего проекта, WebKit дает больше проблем, вниз по дороге, как быть отсутствует в панели инструментов пользовательского интерфейса или не компилировать в то время, когда вы публикуете свою программу в магазине. Я бы предложил изучить альтернативные решения, такие как QWebEngineView.