将Qt4移植到Qt5

时间:2016-01-21 22:11:13

标签: visual-studio-2012 linker qt4 qt5 porting

我正在尝试将Qt4 Vs2005项目移至Qt5 Vs2012。 编辑包含路径并将链接器依赖项从QtCored4.lib;QtGuid4.lib;QtNetworkd4.lib;更改为Qt5Cored.lib;Qt5Guid.lib;Qt5Networkd.lib;后,我仍然会收到数百个链接错误:

  

1> main.obj:错误LNK2019:Verweis aufnichtaufgelöstesexternes   符号“”__ declspec(dllimport)public:void __thiscall   QWidget :: showMaximized(void)“(__ imp_?showMaximized @ QWidget @@ QAEXXZ)”   在Funktion“_main”。 1> main.obj:错误LNK2019:Verweis auf nicht   aufgelöstesexternes符号“”__declspec(dllimport)public:__ thistallcall   QApplication :: QApplication(int&,char * *,int)“   (__imp _ ?? 0QApplication @@ QAE @ AAHPAPADH @ Z)“在Funktion中”_main“。   1> main.obj:错误LNK2019:Verweis aufnichtaufgelöstesexternes   符号“”__ declspec(dllimport)public:virtual __thiscall   QApplication :: ~QApplication(void)“(__ imp _ ?? 1QApplication @@ UAE @ XZ)”in   Funktion“_main”。 1> main.obj:错误LNK2019:Verweis auf nicht   aufgelöstesexternes符号“”__declspec(dllimport)public:static int   __cdecl QApplication :: exec(void)“(__ imp_?exec @ QApplication @@ SAHXZ)”在Funktion“_main”中。 1> object.obj:错误LNK2019:Verweis auf nicht   aufgelöstesexternes符号“”__declspec(dllimport)public:__ thistallcall   QWidget :: QWidget(类QWidget *,类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:错误LNK2001:Nicht   aufgelöstesexternes符号“”__declspec(dllimport)public:__ thistallcall   QWidget :: QWidget(类QWidget *,类QFlags)“   (__imp _ ?? 0QWidget @@ @ QAE @ PAV0 V'$ QFlags @ W4WindowType @ Qt的@@@@@ Z)”。

这里告诉我从项目窗口运行qmake,但我找不到qmake的任何按钮?

StackOverflow

谢谢!

1 个答案:

答案 0 :(得分:1)

在Visual Studio中从Qt4迁移到Qt5

  1. 只需在新版本中打开您的项目。集成到它的Visual Studio Qt5
  2. 打开菜单 Qt5 - > Qt项目设置Menu Qt5 in VS2012
  3. 属性 标签中,选择所需的Qt5版本: enter image description here
  4. 切换到 Qt Modules 标签,然后检查所需的模块。通常,您应该选择 核心 Gui Widgets ,可能是其他一些(取决于您的项目): enter image description here
  5. 按确定,然后转到菜单 项目 - > your_proj_name属性 enter image description here
  6. 转到 配置属性 - > 链接器 - > 输入 - > 其他依赖 ,然后从 Qt4 库中删除旧的依赖项。 (不要忘记为所有配置( 调试 发布 等)执行此操作 enter image description here enter image description here