如何让 Qt Creator 在 Mac OS X 上将 CEF 框架添加到 DEST_DIR?

How to make Qt Creator add CEF framework to DEST_DIR on Mac OS X?

我正在 Qt Creator 中进行一个协作项目,我已经设法让它编译:我链接了 CEF Framework 和 CEF dll 包装器。但是,当我尝试 运行 时,我得到:

dyld: Library not loaded: @executable_path/Chromium Embedded Framework
Reason: image not found

据我所知,框架需要复制到我的 DEST_DIR、.app/Contents/MacOS 或类似的东西中。即使通过手动复制框架,我也没有设法让它工作。 另外,由于开发是跨平台的,我想知道是否有办法告诉 qmake 如何将框架复制到我的 DEST_DIR。 非常感谢任何帮助理解如何在 Qt Creator 中处理 Mac OS X 上的框架。

As far as my understanding goes, the framework needs to be copied into my DEST_DIR, into .app/Contents/MacOS or something like that.

你快到了。框架一般复制到

.app/Contents/Frameworks

但是,您的捆绑包的可执行文件包含对这些框架库所在位置的引用,并且已将它们复制到应用程序捆绑包中,您需要告诉可执行文件它们所在的位置。

使用带有 -L 参数的 oToolyou can see the libraries referenced by the executable。你会用完整的路径来称呼它。例如

otool -L /Applications/Calculator.app/Contents/MacOS/Calculator

对于框架中的每个dylib,您需要使用命令行工具修复路径install_name_tool

deploying a Qt application用于Qt时,我们必须运行 macdeployqt。这基本上对 Qt 框架做了同样的事情;将它们复制到相关的 Frameworks 文件夹并更新路径。

我自己没用过,但根据 documentation,macdeployqt 支持处理第 3 方框架,选项 -executable=<路径>