簡體   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