MacOS的Qt应用程序包太慢
我使用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/$APPMacOS的Qt应用程序包太慢,macos,qt,Macos,Qt,我使用CMake在Mac(Mavericks)上构建Qt应用程序。它在构建目录中创建一个名为SquiggleMark.app的捆绑文件 接下来,我运行一个脚本,将库复制到bundle中,只有Qt framework和libqcocoa.dylib文件 最后,我使用iDMG创建了一个dmg文件 现在,如果我挂载这个dmg文件并从挂载运行我的应用程序,它运行良好。但是,如果我将dmg移动到/Applications并从Finder>Applications运行它,则需要很长时间,几分钟才能启动 我如
我不会发布整个脚本,因为它太长了,但是如果有人想要,我可以把它放在这里。新版本的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()期间,如果是后者,你可以缩小范围,我想我会这样做。谢谢