【问题标题】:How to make Qt Creator add CEF framework to DEST_DIR on Mac OS X?如何让 Qt Creator 在 Mac OS X 上将 CEF 框架添加到 DEST_DIR?
【发布时间】:2015-07-13 21:00:22
【问题描述】:

我正在 Qt Creator 中开发一个协作项目,并且我已经设法让它编译:我链接了 CEF 框架和 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 上的框架的任何帮助,我们将不胜感激。

【问题讨论】:

  • 只是为了确定,你不能使用 QtWebEngine 有什么原因吗?它基于 Chromium Embedded Framework,并且已经内置在 Qt 中。
  • 我不负责使用 CEF 的决定,使用旧项目中的一些代码是使用 CEF 的原因。 UPD:另外,我听说该引擎还不支持拖放,并且在非常不久的将来,我可能会误会。

标签: c++ macos qt qmake chromium-embedded


【解决方案1】:

据我了解,该框架需要复制到我的 DEST_DIR、.app/Contents/MacOS 或类似的东西中。

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

.app/Contents/Frameworks

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

使用带有 -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 时,我们必须运行ma​​cdeployqt。这基本上对 Qt 框架做同样的事情;将它们复制到相关的 Frameworks 文件夹并更新路径。

我自己没用过,但是根据documentation,macdeployqt 支持处理 3rd 方框架,选项 -executable=

【讨论】:

  • 感谢您的回答,我最终编写了一个脚本并将其添加到我的 .pro 文件中,以便 qmake 在链接后运行它,但找不到任何其他方法来实际测试/运行应用程序.
猜你喜欢
  • 1970-01-01
  • 2015-06-07
  • 2019-05-10
  • 2016-08-24
  • 2012-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多