- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
编辑:使用 Qt 5.9.1,安装 Homebrew
在此 other question 中发表评论后,我们正在尝试使用 macdeployqt
来准备基于 Qt 的应用程序的 OSX 包的分发。
此工具正确地复制了包内的所有 Qt 依赖项(甚至一些非 Qt 库)。它还会更改应用程序本身和复制的库中的依赖库名称。
它还成功复制了 QtWebEngineProcess.app QtWebEngineCore.framework 的 Helpers 文件夹。
一个问题是它没有更改 inside QtWebEngineProcess 中的依赖库名称,因此该包不可重定位(因为 QtWebEngineProcess 指的是它的依赖库通过仅在开发机器上有效的绝对路径)。尝试在“客户端”机器上运行该应用程序,因此会出现错误:
dyld: Library not loaded: /usr/local/Cellar/qt/5.9.1/lib/QtWebEngineCore.framework/Versions/5/QtWebEngineCore Referenced from: Business.app/Contents/Frameworks/QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/MacOS/QtWebEngineProcess
我们尝试通过编辑 QtWebEngineProcess 将 Qt 库路径的绝对部分替换为 @loader_path/../../../../../.. 来手动修复此应用程序。/../../Frameworks/
.
这只会将问题向前推进:现在 QtWebEngineProcess 似乎正确地加载了它的依赖库,但是依赖库本身不能再加载它们的依赖库,因为它们的安装名称以 @ 开头executable_path 和 QtWebEngineProcess 可执行文件与 Business 可执行文件位于不同的文件夹中。因此错误:
dyld: Library not loaded: @executable_path/../Frameworks/QtQuick.framework/Versions/5/QtQuick
Referenced from: Business.app/Contents/Frameworks/QtWebEngineCore.framework/Versions/5/QtWebEngineCore
macdeployqt 在涉及使用 Qt 网络引擎的应用程序时是否损坏?
有没有办法让它工作而无需手动重新更改 bundle 中的所有 Qt 安装名称?
最佳答案
根据 Dmitry 对原始问题的评论之一,我终于花时间用 OS X 的 Qt 5.9.1 官方发行版进行了测试,事实证明他是对的。 macdeployqt
与 Qt 的官方二进制文件一起分发可以很好地处理 QtWebEngineProcess.app。
此实用程序随 Qt 的 homebrew
安装一起分发的版本是伪造的,至少在 5.9.1 中是这样
关于c++ - 如何让 macdeployqt 在复制 QtWebEngineCore 框架时更改 QtWebEngineProcess.app 中的库名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46430930/
Pic 1 Pic 2 Pic 3 Pic 4 自从我安装了 anaconda 以来,这种情况就一直发生在我身上。我尝试过spyder --reset,我尝试过安装pyqt5。没有什么对我有用。它是U
编辑:使用 Qt 5.9.1,安装 Homebrew 在此 other question 中发表评论后,我们正在尝试使用 macdeployqt 来准备基于 Qt 的应用程序的 OSX 包的分发。 此
我是一名优秀的程序员,十分优秀!