2

テストアプリをコンパイルしようとすると失敗します。

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();
}

cmake -G "NMake Makefiles" (3)でmakefileを生成し、nmake (4)を使用します。

私が使用dumpbin /EXPORTS QtWebKit5.dll > QtWebKit5.dll.exports.txtしたことを受け取った後dumpbin /EXPORTS QtWebKit5.lib > QtWebKit5.lib.exports.txt、シンボルのエクスポートを確認するために:(5)(6)

Ctrl + Fを使用すると、これらのファイルで「未解決」の外部シンボルを見つけることができます。

?staticMetaObject @ QWebPage @@ 2UQMetaObject @@ B(public:static struct QMetaObject const QWebPage :: staticMetaObject)

?staticMetaObject @ QWebView @@ 2UQMetaObject @@ B(public:static struct QMetaObject const QWebView :: staticMetaObject)

シンボルがQtWebKit5.libにある場合、リンク時にこれらのエラーが発生するのはなぜですか?

4

2 に答える 2

2

いくつかの理由がこれに影響します、

バージョン4.7より大きいQtを使用する場合は、この名前空間をプロジェクトの「.pro」ファイルに追加します。

QT += webkitwidgets

4.7未満の場合:

QT += webkit

QWebViewライブラリを次のように変更します(「そのようなファイルまたはディレクトリはありません」という警告が表示されても心配しないでください)。

#include <QwebView>
于 2013-01-12T19:13:00.047 に答える
1

add_definitions(-DQT_DLL)CMakeLists.txtに追加したところ、コンパイルされました。

于 2012-07-22T12:22:08.833 に答える