繁体   English   中英

Qt .nib在MacOS上发布问题

[英]Qt .nib issues on MacOS

我正在尝试在另一台没有安装Qt的mac上部署Qt C ++应用程序。 我收到“Qt内部错误:无法加载qt_menu.nib。.nib文件应放在QtGui.framework / Versions / Current / Resources /或应用程序包的resources目录中。”

我已经尝试将qt_menu.lib打包到两个建议的位置,但没有成功:

$ ls ./arya.app/Resources/
qt_menu.nib
$ ./arya.app/Contents/MacOS/arya 
Qt internal error: qt_menu.nib could not be loaded. The .nib file should be placed in QtGui.framework/Versions/Current/Resources/  or in the resources directory of your application bundle.

要么:

$ mkdir QtGui.framework
$ mkdir QtGui.framework/Versions/
$ mkdir QtGui.framework/Versions/Current/
$ mkdir QtGui.framework/Versions/Current/Resources
$ mv ./arya.app/Resources/qt_menu.nib QtGui.framework/Versions/Current/Resources/
$ ./arya.app/Contents/MacOS/arya 
Qt internal error: qt_menu.nib could not be loaded. The .nib file should be placed in QtGui.framework/Versions/Current/Resources/  or in the resources directory of your application bundle.

我不确定是否有某些连接,但在此之前我遇到了一些dylib路径问题。 在使用install_name_tool磕磕绊绊之后,我'解决了'他们:

export DYLD_LIBRARY_PATH=.

在运行应用程序之前。

使用。构建应用程序

CONFIG -= app_bundle

没有区别。

在从另一个应用程序中解决同样的问题后,我设法确定了可以轻松解决此.nib问题的确切命令:

mkdir -p application.app/Contents/Frameworks/QtGui.framework/Resources
cp -r $(QTLIBDIR)/QtGui.framework/Versions/4/Resources/qt_menu.nib application.app/Contents/Frameworks/QtGui.framework/Resources

这并没有解决有关部署mac的其他问题 - 只是.nib问题。

试试这个:

(1)删除export DYLD_LIBRARY_PATH=.

(2)删除你的CONFIG -= app_bundle

(3)将QT框架放入./arya.app/Contents/Frameworks

即所有QtGui.framework的内容转换成./arya.app/Contents/Frameworks/QtGui.framework,QtCore.framework./arya.app/Contents/Frameworks/QtCore.framework等。

所以你的qt_menu.nib会自动成为./arya.app/Contents/Frameworks/QtGui.framework/Versions/Current/Resources/qt_menu.nib

在构建之后尝试在.app上运行macdeployqt 它将所需的Qt框架(以及任何其他所需的dylibsdylibs到bundle中并修复二进制文件的链接路径,以便它知道在Qt中链接它自己的bundle。

(它还有一个错误,导致任何路径不以lib/结尾的lib/ (如/opt/local/lib/opencv/cv.lib不能正确复制,但有一个单行源修复)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM