Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未解析的外部符号。C++;_C++_Qtwebkit_Qt5 - Fatal编程技术网

C++ 未解析的外部符号。C++;

C++ 未解析的外部符号。C++;,c++,qtwebkit,qt5,C++,Qtwebkit,Qt5,我为我糟糕的英语和这些丑陋的链接感到抱歉(但是“新用户最多只能发布两个超链接”) (您可以从脚注中找到链接。) 当我尝试编译我的测试应用程序时,它失败了 CMakeLists.txt: cmake_minimum_required( VERSION 2.8.8 ) project( webkit-test ) set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) find_package( Qt5Core ) find_package

我为我糟糕的英语和这些丑陋的链接感到抱歉(但是“新用户最多只能发布两个超链接”)

(您可以从脚注中找到链接。)

当我尝试编译我的测试应用程序时,它失败了

CMakeLists.txt:

cmake_minimum_required( VERSION 2.8.8 )
project( webkit-test )

set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

find_package( Qt5Core )
find_package( Qt5Gui )
find_package( Qt5OpenGL )
find_package( Qt5Network )
find_package( Qt5WebKit )
find_package( Qt5Widgets )

add_executable( webkit-test main.cpp )

qt5_use_modules( webkit-test Core Gui OpenGL Network WebKit Widgets )
C++代码:

#include <QtWidgets/QApplication>
#include <QtWebKit/QWebView>

int main( int argc, char *argv[] )
{
        QString file;
        if ( argc >= 2 )
                file = argv[1];

        QApplication a( argc, argv );

        return a.exec();
}
#包括
#包括
int main(int argc,char*argv[])
{
QString文件;
如果(argc>=2)
file=argv[1];
质量保证申请a(argc、argv);
返回a.exec();
}
我通过
cmake-G“NMake makefile”
生成makefile,然后使用
NMake

收到后,我使用
dumpbin/EXPORTS QtWebKit5.dll>QtWebKit5.dll.EXPORTS.txt
dumpbin/EXPORTS QtWebKit5.lib>QtWebKit5.lib.EXPORTS.txt
查看导出符号:和

通过使用Ctrl+F,您可以在这些文件中找到“未解析”的外部符号:

??staticMetaObject@QWebPage@@2UQMetaObject@@B(公共:静态结构QMetaObject常量QWebPage::staticMetaObject)

??staticMetaObject@QWebView@@2UQMetaObject@@B(公共:静态结构QMetaObject常量QWebView::staticMetaObject)


如果符号在QtWebKit5.lib中,为什么我在链接时会出现这些错误?

我将
添加定义(-DQT\u DLL)
添加到我的CMakeLists.txt中,现在它已被编译。

一些原因影响了这一点

如果使用版本大于4.7的Qt,请将此命名空间添加到项目的“.pro”文件中:

如果小于等于4.7:

QT += webkit
并将QWebView库更改为(如果收到关于“无此类文件或目录”的警告,请不要担心!)

#包括

我已经替换了你的链接并改进了一些标记,但是你确实应该考虑至少把代码从(1)和(2)直接放在你的问题中,这些文件很小,这使得人们查看这些文件的可能性大大高于他们必须遵循PasteBin链接的可能性。如何链接QtWebKit5.lib?看起来您包含了一个标题,但找不到相关的库。stark,cmake找到了该库,并在makefile.mydogisbox中使用此路径,nmake知道QtWebKit5.lib在哪里。我试图在CMakeLists.txt中显示该库的路径,以获得信任。错误是一样的。
QT += webkit
#include <QwebView>