Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.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
MacOS的Qt应用程序包太慢_Macos_Qt - Fatal编程技术网

MacOS的Qt应用程序包太慢

MacOS的Qt应用程序包太慢,macos,qt,Macos,Qt,我使用CMake在Mac(Mavericks)上构建Qt应用程序。它在构建目录中创建一个名为SquiggleMark.app的捆绑文件 接下来,我运行一个脚本,将库复制到bundle中,只有Qt framework和libqcocoa.dylib文件 最后,我使用iDMG创建了一个dmg文件 现在,如果我挂载这个dmg文件并从挂载运行我的应用程序,它运行良好。但是,如果我将dmg移动到/Applications并从Finder>Applications运行它,则需要很长时间,几分钟才能启动 我如

我使用CMake在Mac(Mavericks)上构建Qt应用程序。它在构建目录中创建一个名为SquiggleMark.app的捆绑文件

接下来,我运行一个脚本,将库复制到bundle中,只有Qt framework和libqcocoa.dylib文件

最后,我使用iDMG创建了一个dmg文件

现在,如果我挂载这个dmg文件并从挂载运行我的应用程序,它运行良好。但是,如果我将dmg移动到/Applications并从Finder>Applications运行它,则需要很长时间,几分钟才能启动

我如何调试它?

我怀疑在Finder中查找库花费的时间太长,但我不确定

当我从终端运行应用程序时,通过键入“/Applications/SquiggleMark/Contents/MacOS/SquiggleMark”,它也可以正常工作

您可以尝试一下,告诉我您是否看到与我相同的长加载时间

我的绑定脚本有如下命令:

安装\u name\u工具-id@executable\u path/。/Frameworks/qtwidts$BUNDLE/Contents/Frameworks/qtwidts

安装_name_工具-更改$QTDIR/clang_64/lib/qtwidts.framework/Versions/5/qtwidts@executable\u path/。/Frameworks/qtwidts$BUNDLE/Contents/MacOS/$APP


我不会发布整个脚本,因为它太长了,但是如果有人想要,我可以把它放在这里。

新版本的MacOS/X将在应用程序第一次执行时对其进行安全扫描,这可能需要一点时间才能完成。也许你看到了?如果是这样的话,第二次运行时启动应该快得多。事实似乎并非如此,从Finder开始总是慢的,从Terminal开始总是快的。您考虑过使用macdeployqt吗?打开终端并运行以下命令:
//clang_64/bin/macdeployqt yourapp.app/-verbose=2-dmg
。我相信这只适用于发布版本,而不适用于调试。。。我会做一个fopen(“/tmp/hey_roseweater.txt”,“w”);在main()的顶部,然后在程序执行过程中的各个点对该文件执行ffprintf(后跟fflush())。通过fprintf()写入的数据应该包括当前的时间戳,这样,当您在之后查看文件时,可以看到每次fprintf()调用之间经过了多少时间。这至少可以告诉你延迟是发生在main()之前还是发生在main()期间,如果是后者,你可以缩小范围,我想我会这样做。谢谢