作者:家宇珮禎忠全 | 来源:互联网 | 2023-06-29 21:19
大家好,我在学Qt的时候,想学一下webkit,然后根据文档想显示个网页。代码如下:intmain(intargc,char*argv[]){QApplicationa(a
大家好,我在学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
#include
在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.
请问这是怎么回事呢?
17 个解决方案
请注意,Qt5中的模块化!
参考:http://blog.sina.com.cn/s/blog_a6fb6cc90101endy.html
貌似是跟Linux发行版有关,我在CentOS6.4上遇到同样的问题,搜了Google也没什么解决方案,有人在qt-project.org的论坛上提了这问题也没人回复。
在其他发行版上,比如Debian Wheezy就没这问题。
同问 ,我也遇到这个问题 ,centos 6.5,qt5.1.1,请问解决了吗 ?怎么解决的呢?
我最近想用qtwebkit显示一个网页内容,也是遇上楼主的问题,环境是rhel6.4和qt5.1,查了很多资料,感觉把qtwebkit需要的软件包都装上了,还是出错!有没有大师来解决下啊!
今天把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,看看能不能解决问题!
今天将GLIBC库成功从2.12升级到2.19,Qt5编译时,“g_”开头的错误都没有了。
明天编译gstramer库,不过要升级gst库,还需要升级glib2。
你好,请问这个问题你是否已经解决???我这里用ubuntu10.10安装QT5.1.0,运行webkitwidgets的例子也出现了这种情况。
问题已解决了,就是我上面说的原因,需要将系统的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了!