关于Qt5.1的webkit

gdutlison 2013-10-14 07:47:36
大家好,我在学Qt的时候,想学一下webkit,然后根据文档想显示个网页。代码如下:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWebView *view = new QWebView();
view->load(QUrl("http://www.csdn.net"));
view->show();
return a.exec();
}


已经加了头文件
#include <QtWebKit>
#include <QtWebKitWidgets>


在pro文件里也加了
QT += core gui webkit webkitwidgets network


结果在编译时出现以下错误
19:41:46: 为项目test1执行步骤 ...
19:41:46: 正在启动 "/opt/Qt5.1.0/5.1.0/gcc/bin/qmake" /home/CentOS/QtProjects/test1/test1.pro -r -spec linux-g++ CONFIG+=debug CONFIG+=declarative_debug CONFIG+=qml_debug

19:41:46: 进程"/opt/Qt5.1.0/5.1.0/gcc/bin/qmake"正常退出。
19:41:46: 正在启动 "/usr/bin/make"

g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../test1 -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKitWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQuick -I/opt/Qt5.1.0/5.1.0/gcc/include/QtOpenGL -I/opt/Qt5.1.0/5.1.0/gcc/include/QtPrintSupport -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQml -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKit -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtSensors -I/opt/Qt5.1.0/5.1.0/gcc/include/QtNetwork -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. -o main.o ../test1/main.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../test1 -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKitWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQuick -I/opt/Qt5.1.0/5.1.0/gcc/include/QtOpenGL -I/opt/Qt5.1.0/5.1.0/gcc/include/QtPrintSupport -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQml -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKit -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtSensors -I/opt/Qt5.1.0/5.1.0/gcc/include/QtNetwork -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. -o mainwindow.o ../test1/mainwindow.cpp
/opt/Qt5.1.0//5.1.0/gcc/bin/moc -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../test1 -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKitWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQuick -I/opt/Qt5.1.0/5.1.0/gcc/include/QtOpenGL -I/opt/Qt5.1.0/5.1.0/gcc/include/QtPrintSupport -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQml -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKit -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtSensors -I/opt/Qt5.1.0/5.1.0/gcc/include/QtNetwork -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. ../test1/mainwindow.h -o moc_mainwindow.cpp
g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WEBKITWIDGETS_LIB -DQT_QUICK_LIB -DQT_OPENGL_LIB -DQT_PRINTSUPPORT_LIB -DQT_QML_LIB -DQT_WEBKIT_LIB -DQT_WIDGETS_LIB -DQT_SENSORS_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/opt/Qt5.1.0/5.1.0/gcc/mkspecs/linux-g++ -I../test1 -I/opt/Qt5.1.0/5.1.0/gcc/include -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKitWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQuick -I/opt/Qt5.1.0/5.1.0/gcc/include/QtOpenGL -I/opt/Qt5.1.0/5.1.0/gcc/include/QtPrintSupport -I/opt/Qt5.1.0/5.1.0/gcc/include/QtQml -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWebKit -I/opt/Qt5.1.0/5.1.0/gcc/include/QtWidgets -I/opt/Qt5.1.0/5.1.0/gcc/include/QtSensors -I/opt/Qt5.1.0/5.1.0/gcc/include/QtNetwork -I/opt/Qt5.1.0/5.1.0/gcc/include/QtGui -I/opt/Qt5.1.0/5.1.0/gcc/include/QtCore -I. -I. -o moc_mainwindow.o moc_mainwindow.cpp
g++ -Wl,-rpath,/opt/Qt5.1.0/5.1.0/gcc -Wl,-rpath,/opt/Qt5.1.0/5.1.0/gcc/lib -Wl,-rpath-link,/opt/Qt5.1.0/5.1.0/gcc/lib -o test1 main.o mainwindow.o moc_mainwindow.o -L/opt/Qt5.1.0//5.1.0/gcc/lib -lQt5WebKitWidgets -lQt5Quick -lQt5OpenGL -lQt5PrintSupport -lQt5Qml -lQt5WebKit -lQt5Widgets -lQt5Sensors -lQt5Network -lQt5Gui -lQt5Core -lGL -lpthread

/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `g_variant_ref'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_x_overlay_set_window_handle'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_query_parse_nth_buffering_range'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `g_variant_unref'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_element_link_pads_full'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_is_initialized'
/opt/Qt5.1.0//5.1.0/gcc/lib/libQt5WebKit.so: undefined reference to `gst_query_get_n_buffering_ranges'

collect2: ld returned 1 exit status
make: *** [test1] Error 1
19:41:53: 进程"/usr/bin/make"退出,退出代码 2 。
Error while building/deploying project test1 (kit: Desktop Qt 5.1.0 GCC 32bit)
当执行步骤 'Make'时
19:41:53: Elapsed time: 00:07.


请问这是怎么回事呢?
...全文
2065 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
平安狸 2014-05-12
  • 打赏
  • 举报
回复
fengyuan_csdn 留个QQ号找你帮忙。
fengyuan_csdn 2014-05-09
  • 打赏
  • 举报
回复
问题已解决了,就是我上面说的原因,需要将系统的gcc升级到gcc-4.8.1以上,glibc-2.17以上,glib2.36以上,编译安装gstreamer0.10.36和gst-plugins-base-0.10.36,并且修改相应环境变量,在QT5创建的工程pro文件里加上gstreamer0.10.36、gst-plugins-base-0.10.36库的lib和include地址,然后就OK了!
chenmo074639 2014-05-06
  • 打赏
  • 举报
回复
你好,请问这个问题你是否已经解决???我这里用ubuntu10.10安装QT5.1.0,运行webkitwidgets的例子也出现了这种情况。
fengyuan_csdn 2014-04-26
  • 打赏
  • 举报
回复
今天将GLIBC库成功从2.12升级到2.19,Qt5编译时,“g_”开头的错误都没有了。 明天编译gstramer库,不过要升级gst库,还需要升级glib2。
fengyuan_csdn 2014-04-15
  • 打赏
  • 举报
回复
今天把RHEL6.4的gcc从4.4.7升级到4.8.1解决了下面这个问题: /home/lison/Qt5.1.1/5.1.1/gcc/lib/libQt5WebKit.so: undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)@GLIBCXX_3.4.15' 其他问题还没搞清楚原因,明天准备把GLIBC库从2.12升级到2.17或2.19,看看能不能解决问题!
fengyuan_csdn 2014-04-14
  • 打赏
  • 举报
回复
我最近想用qtwebkit显示一个网页内容,也是遇上楼主的问题,环境是rhel6.4和qt5.1,查了很多资料,感觉把qtwebkit需要的软件包都装上了,还是出错!有没有大师来解决下啊!
gdutlison 2014-01-08
  • 打赏
  • 举报
回复
引用 8 楼 byron1655 的回复:
同问 ,我也遇到这个问题 ,centos 6.5,qt5.1.1,请问解决了吗 ?怎么解决的呢?
没解决。系统换成Ubuntu就顺利多了。
虾米的沃 2013-12-17
  • 打赏
  • 举报
回复
貌似是操作系统的gtk原因。
byron1655 2013-12-12
  • 打赏
  • 举报
回复
同问 ,我也遇到这个问题 ,centos 6.5,qt5.1.1,请问解决了吗 ?怎么解决的呢?
gdutlison 2013-12-07
  • 打赏
  • 举报
回复
引用 4 楼 missdeer 的回复:
貌似是跟Linux发行版有关,我在CentOS6.4上遇到同样的问题,搜了Google也没什么解决方案,有人在qt-project.org的论坛上提了这问题也没人回复。 在其他发行版上,比如Debian Wheezy就没这问题。
对,我的系统就是CentOS 6.4,不知到怎么解决!
gdutlison 2013-12-07
  • 打赏
  • 举报
回复
引用 1 楼 jyd30 的回复:
pro 文件

#-------------------------------------------------
#
# Project created by QtCreator 2013-10-14T22:18:36
#
#-------------------------------------------------

QT       += core gui webkit webkitwidgets network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testWebit
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h

FORMS    += mainwindow.ui
main.cpp

#include "mainwindow.h"
#include <QApplication>
#include <QtWebKitWidgets>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWebView view ;
    view.load(QUrl("http://www.csdn.net"));
    view.show();
    
    return a.exec();
}
编译成功,效果图如下:
不行哦,还是那个错误。我的是CentOS 6.4,你的是什么系统?
gdutlison 2013-12-07
  • 打赏
  • 举报
回复
引用 2 楼 Grubbysfans 的回复:
我也碰到这个问题,楼主解决了吗?
还没解决,纠结。代码在windows下运行没问题,估计真的跟CentOS有关。
类库 2013-10-24
  • 打赏
  • 举报
回复
貌似是跟Linux发行版有关,我在CentOS6.4上遇到同样的问题,搜了Google也没什么解决方案,有人在qt-project.org的论坛上提了这问题也没人回复。 在其他发行版上,比如Debian Wheezy就没这问题。
一去丶二三里 2013-10-16
  • 打赏
  • 举报
回复
请注意,Qt5中的模块化! 参考:http://blog.sina.com.cn/s/blog_a6fb6cc90101endy.html
grubbysfans 2013-10-15
  • 打赏
  • 举报
回复
我也碰到这个问题,楼主解决了吗?
jyd30 2013-10-14
  • 打赏
  • 举报
回复
pro 文件

#-------------------------------------------------
#
# Project created by QtCreator 2013-10-14T22:18:36
#
#-------------------------------------------------

QT += core gui webkit webkitwidgets network

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testWebit
TEMPLATE = app


SOURCES += main.cpp\
mainwindow.cpp

HEADERS += mainwindow.h

FORMS += mainwindow.ui



main.cpp

#include "mainwindow.h"
#include <QApplication>
#include <QtWebKitWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWebView view ;
view.load(QUrl("http://www.csdn.net"));
view.show();

return a.exec();
}


编译成功,效果图如下:

16,787

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧