Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.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++ 如何在较新的Qt和QtCreator中安装和调试较旧的Qt版本?_C++_Qt_Qt5_Qmake - Fatal编程技术网

C++ 如何在较新的Qt和QtCreator中安装和调试较旧的Qt版本?

C++ 如何在较新的Qt和QtCreator中安装和调试较旧的Qt版本?,c++,qt,qt5,qmake,C++,Qt,Qt5,Qmake,当我从Qt5.6更新到5.12时,我不得不将我正在工作的一个项目恢复到Qt5.6,结果发现两个Qt安装相互干扰。不幸的是,Qt5.12安装程序不再提供安装5.6的选项 因此,我决定将Qt5.6SDK与5.12安装一起移动到Qt文件夹中。在设置QtCreator以使用这两个版本后,一切正常,只是我无法再调试5.6版本。链接时,Qt 5.6 lib文件夹的路径(指向旧目录)中有一个错误,调试日志中有另一个错误: This application failed to start because it

当我从Qt5.6更新到5.12时,我不得不将我正在工作的一个项目恢复到Qt5.6,结果发现两个Qt安装相互干扰。不幸的是,Qt5.12安装程序不再提供安装5.6的选项

因此,我决定将Qt5.6SDK与5.12安装一起移动到Qt文件夹中。在设置QtCreator以使用这两个版本后,一切正常,只是我无法再调试5.6版本。链接时,Qt 5.6 lib文件夹的路径(指向旧目录)中有一个错误,调试日志中有另一个错误:

This application failed to start because it could not find or load the Qt platform plugin "cocoa" in ""

在使用旧路径搜索qt安装文件夹中的所有文件后,我用新路径替换了所有出现的文件,但问题仍然存在。当我意识到前面的路径也硬编码在一些二进制文件中时,qt使用了QtCore_debug。我在互联网上搜索了重新生成这些文件的方法,但什么也找不到。

在花了很多时间试图找到解决方法后,解决问题的方法是:

  • 将Qt安装文件夹(内有Qt 5.12)重命名为其他文件夹(例如从~/Qt重命名为~/Qt_)
  • 将5.6版本(我从中获得)安装到安装5.12的同一目录中(在我的例子中是~/Qt)。在安装过程中,我注意到Qt安装程序运行脚本生成带有硬编码路径的二进制版本的时刻,这一次是正确的
  • 将Qt 5.6 SDK复制到Qt 5.12安装位置(例如,将~/Qt/5.6.3复制到~/Qt_/)。两个qt版本现在都应该在这个文件夹中
  • 删除以前的Qt文件夹
  • 将其重命名回原始名称(例如从~/Qt_u到~/Qt)
  • 完成后,只需打开QtCreator,添加新的Qt SDK(如5.6)并用它创建一个新的工具包

    你完了。玩得开心