[英]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框架(以及任何其他所需的dylibs
) dylibs
到bundle中並修復二進制文件的鏈接路徑,以便它知道在Qt中鏈接它自己的bundle。
(它還有一個錯誤,導致任何路徑不以lib/
結尾的lib/
(如/opt/local/lib/opencv/cv.lib
不能正確復制,但有一個單行源修復)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.