why is headless qwebpage throwing sigsegv?
所以,我需要针对一个 html 页面(有点像我的应用程序的脚本)解析一些 javascript,但是当我尝试初始化 QWebPage 时会抛出 SIGSEGV。它控制台应用程序。我的代码的相关部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 | QT += core sql network xml webkit QT -= gui QMAKE_CXXFLAGS += -std=c++11 LIBS += -lqca TARGET = jarvisd CONFIG += console CONFIG -= app_bundle TEMPLATE = app |
1 2 | QWebPage * p = new QWebPage(); p->mainFrame()->load(QUrl(url)); |
它在第一行崩溃。从 QWebPage 的文档中,从"在无小部件环境中使用 QWebPage"部分,看来这应该是可能的。但没有错误,只是 sigsegv :/
感谢您的帮助。
QT = 核心小部件 sql network xml webkit webkitwidgets
使用类似这样的东西:
1 2 3 | QWebView *view = new QWebView(); view->load(QUrl("http://127.0.0.1")); QObject::connect(view, &QWebView::loadFinished, [view](){fprintf(stderr, view->title().toLocal8Bit().data());}); |
等
Qt5 发出上面代码中使用的 lambda 函数。
编辑:上面的代码在 Windows 7 上以控制台模式运行。我用您帖子中的代码替换了这个代码段。这也有效。
编辑2:
行。我找到了崩溃的原因。尝试用 QApplication 替换 QCoreApplication。并且项目文件中需要webkitwigets。