5

我正在尝试设置 Qt Win 迁移框架以在现有的基于 MFC 的应用程序中使用 Qt。我想将框架用作库,因此我qmakeqtwinmigrate/buildlib/buildlib.pro文件上运行以创建 Visual Studio vcxproj 项目文件。我将框架构建为 dll/lib 并将标头放在一个公共包含目录中。在我的 MFC 项目中,我添加了 Qt 迁移框架的库作为依赖项,在适当的地方包含了头文件,并添加了代码来测试框架。一切编译正常,但随后出现链接器错误:

错误 LNK2001:未解析的外部符号“公共:静态结构 QMetaObject const QWinWidget::staticMetaObject”(?staticMetaObject@QWinWidget@@2UQMetaObject@@B)

4

1 回答 1

6

根据这个论坛帖子,必须将预处理器定义添加到使用 Qt Win 迁移框架作为库的 MFC 项目中。只需添加

QT_QTWINMIGRATE_IMPORT

到下的项目设置Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions

有关为什么这是必要的更深入的解释,请参阅此博客文章

于 2012-05-29T12:48:21.887 回答