将 Qt4 移植到 Qt5
Porting Qt4 to Qt5
我正在尝试将我的 Qt4
Vs2005
项目移植到 Qt5
Vs2012
。
在编辑包含路径并将链接器依赖项从 QtCored4.lib;QtGuid4.lib;QtNetworkd4.lib;
更改为 Qt5Cored.lib;Qt5Guid.lib;Qt5Networkd.lib;
之后,我仍然遇到数百个链接错误:
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol ""__declspec(dllimport) public: void __thiscall
QWidget::showMaximized(void)" (__imp_?showMaximized@QWidget@@QAEXXZ)"
in Funktion "_main". 1>main.obj : error LNK2019: Verweis auf nicht
aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall
QApplication::QApplication(int &,char * *,int)"
(__imp_??0QApplication@@QAE@AAHPAPADH@Z)" in Funktion "_main".
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes
Symbol ""__declspec(dllimport) public: virtual __thiscall
QApplication::~QApplication(void)" (__imp_??1QApplication@@UAE@XZ)" in
Funktion "_main". 1>main.obj : error LNK2019: Verweis auf nicht
aufgelöstes externes Symbol ""__declspec(dllimport) public: static int
__cdecl QApplication::exec(void)" (__imp_?exec@QApplication@@SAHXZ)" in Funktion "_main". 1>object.obj : error LNK2019: Verweis auf nicht
aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall
QWidget::QWidget(class QWidget *,class QFlags)"
(__imp_??0QWidget@@QAE@PAV0@V?$QFlags@W4WindowType@Qt@@@@@Z)" in
Funktion ""public: __thiscall Object::Object(class QWidget *)"
(??0Object@@QAE@PAVQWidget@@@Z)". 1>ppi.obj : error LNK2001: Nicht
aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall
QWidget::QWidget(class QWidget *,class QFlags)"
(__imp_??0QWidget@@QAE@PAV0@V?$QFlags@W4WindowType@Qt@@@@@Z)".
这里被告知要从项目 window 运行 qmake
,但我找不到 qmake
的任何按钮?
Whosebug
谢谢!
在 Visual Studio
中从 Qt4 迁移到 Qt5
- 只需在新版本中打开您的项目。 Visual Studio 的 Visual Studio 与 Qt5
集成
- 打开菜单 Qt5 -> Qt 项目设置:
- 在 Properties 选项卡中,select 所需的 Qt5 版本:
- 切换到 Qt 模块 选项卡并检查所需的模块。通常,你应该 select Core, Gui 和 Widgets,可能还有其他一些(取决于您的项目):
- 按确定,然后进入菜单项目 -> your_proj_name属性:
- 转到配置属性 -> 链接器 -> 输入 -> 附加依赖项 ,然后从 Qt4 库中删除旧的依赖项。 (不要忘记为所有配置执行此操作(Debug,Release, 等等)
我正在尝试将我的 Qt4
Vs2005
项目移植到 Qt5
Vs2012
。
在编辑包含路径并将链接器依赖项从 QtCored4.lib;QtGuid4.lib;QtNetworkd4.lib;
更改为 Qt5Cored.lib;Qt5Guid.lib;Qt5Networkd.lib;
之后,我仍然遇到数百个链接错误:
1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: void __thiscall QWidget::showMaximized(void)" (__imp_?showMaximized@QWidget@@QAEXXZ)" in Funktion "_main". 1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall QApplication::QApplication(int &,char * *,int)" (__imp_??0QApplication@@QAE@AAHPAPADH@Z)" in Funktion "_main". 1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: virtual __thiscall QApplication::~QApplication(void)" (__imp_??1QApplication@@UAE@XZ)" in Funktion "_main". 1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: static int __cdecl QApplication::exec(void)" (__imp_?exec@QApplication@@SAHXZ)" in Funktion "_main". 1>object.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall QWidget::QWidget(class QWidget *,class QFlags)" (__imp_??0QWidget@@QAE@PAV0@V?$QFlags@W4WindowType@Qt@@@@@Z)" in Funktion ""public: __thiscall Object::Object(class QWidget *)" (??0Object@@QAE@PAVQWidget@@@Z)". 1>ppi.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""__declspec(dllimport) public: __thiscall QWidget::QWidget(class QWidget *,class QFlags)" (__imp_??0QWidget@@QAE@PAV0@V?$QFlags@W4WindowType@Qt@@@@@Z)".
这里被告知要从项目 window 运行 qmake
,但我找不到 qmake
的任何按钮?
Whosebug
谢谢!
在 Visual Studio
- 只需在新版本中打开您的项目。 Visual Studio 的 Visual Studio 与 Qt5
- 打开菜单 Qt5 -> Qt 项目设置:
- 在 Properties 选项卡中,select 所需的 Qt5 版本:
- 切换到 Qt 模块 选项卡并检查所需的模块。通常,你应该 select Core, Gui 和 Widgets,可能还有其他一些(取决于您的项目):
- 按确定,然后进入菜单项目 -> your_proj_name属性:
- 转到配置属性 -> 链接器 -> 输入 -> 附加依赖项 ,然后从 Qt4 库中删除旧的依赖项。 (不要忘记为所有配置执行此操作(Debug,Release, 等等)