我有一个问题,因为该版本5.1rc2的QtMac OS X的(5.1也受到影响,而不是5.1rc1)
当我建立我的应用程序,做一个otool -L对二进制文件看到共享库的路径,我得到:(这是只是一个样本,为了清楚起见我删除了一些
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
(compatibility version 45.0.0, current version 1187.37.0)
/Users/chris/**Qt5.1.0//5.1.0**/clang_64/lib/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets
(compatibility version 5.1.0, current version 5.1.0)
/Users/chris/Qt5.1.0//5.1.0/clang_64/lib/QtQuick.framework/Versions/5/QtQuick
(compatibility version 5.1.0, current version 5.1.0)
/Users/chris/Qt5.1.0//5.1.0/clang_64/lib/QtQml.framework/Versions/5/QtQml
(compatibility version 5.1.0, current version 5.1.0)
/Users/chris/Qt5.1.0//5.1.0/clang_64/lib/QtNetwork.framework/Versions/5/QtNetwork
(compatibility version 5.1.0, current version 5.1.0)
/Users/chris/Qt5.1.0//5.1.0/clang_64/lib/QtCore.framework/Versions/5/QtCore
(compatibility version 5.1.0, current version 5.1.0)
/Users/chris/Qt5.1.0//5.1.0/clang_64/lib/QtGui.framework/Versions/5/QtGui
(compatibility version 5.1.0, current version 5.1.0)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,Qt库的路径中存在双斜杠.当我使用macdeployqt部署我的应用程序时,这些路径不会更改为本地框架(@executable_path /../ Frameworks/...),因为这...我必须使用install_name_tool手动执行,并且它是真烦人
我该怎么做才能解决这个问题?(我已经尝试重新安装Qt,清理,再次运行qmake并重建而无需更改)
我有一个应用程序项目依赖于我自己创建的几个共享库.根据Qt 4.6文档"在Mac OSX上部署应用程序":
注意:如果您希望第三方库包含在应用程序包中,则必须将该库的一个重复的lib条目添加到应用程序的.pro文件中.否则,macdeployqt工具不会将第三方.dylib复制到捆绑包中.
我已经将lib条目添加到我的应用程序的.pro文件中,但是当我执行macdeployqt时,我编写的库不会被复制到bundle中.我的.pro文件中有以下内容:
LIBS += -L../Libraries -lMyLib
Run Code Online (Sandbox Code Playgroud)
一切都建立好,就在我尝试从捆绑运行时遇到问题,即"图像未找到"错误.
macdeployqt中是否有错误或者我的.pro文件还有什么问题?
如何使用qmake和macdeployqt缩小应用程序?
我在项目.pro文件中设置了QT = core gui,并在生成的应用程序上运行qmake和macdeployqt.
问题是该程序正在捆绑QtNetwork,QtScript,QtSvg等.我已经尝试设置QT - =网络脚本svg(然后make clean,rm -rf*.app,qmake,make).
该应用程序总共32 MB.
.pro文件:
TEMPLATE = app
TARGET = throw
DEPENDPATH += .
INCLUDEPATH += .
CONFIG += x86_64 release
QT = core gui
unix {
CONFIG += link_pkgconfig
PKGCONFIG += glib-2.0
}
# Input
SOURCES += main.cpp
# Headers
HEADERS += throw.h
RESOURCES += throw.qrc
ICON = throw.png
mac {
QMAKE_INFO_PLIST = Info.plist
ICON = throw.icns
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个基于Qt的应用程序,当我在bundle上使用macdeployqt时,Qt插件不会被复制到bundle.
但是,如果我第二次运行它们,它们就是.此外,"如果应用程序使用QtSvg模块,则会部署svg图标插件." 没有填满 - 我的应用程序确实使用QtSvg但不复制iconengines/*插件.
我尝试用-verbose = 3运行它,最后几行是:
Log: Created configuration file: "silverlock.app/Contents/Resources/qt.conf"
Log: This file sets the plugin search path to "silverlock.app/Contents/PlugIns"
Run Code Online (Sandbox Code Playgroud)
从上一条消息的内容来看,似乎有意继续运行,但没有 - 几乎就像它崩溃一样.
为什么会这样?macdeployqt之前一直没有问题.
使用:
我使用的是Qt Creator 3.6.1用Qt 5.6.0 (Clang 7.0 (Apple), 64 bit)了,我遇到了一些问题,而试图创建一个用于部署的应用程序包.
注意:调用应用程序名称 bibi
Qt Creatorbibi.app在build-bibi-Desktop_Qt_5_6_0_clang_64bit-Release/文件夹下成功生成bibi.app无法在其他Mac上成功链接Qtmacdeployqt 没有解决问题以下是详细信息:
otool
> otool -L build-bibi-Desktop_Qt_5_6_0_clang_64bit-Release/bibi.app/Contents/MacOS/bibi
build-bibi-Desktop_Qt_5_6_0_clang_64bit-Release/bibi.app/Contents/MacOS/bibi:
@rpath/QtWidgets.framework/Versions/5/QtWidgets (compatibility version 5.6.0, current version 5.6.0)
@rpath/QtGui.framework/Versions/5/QtGui (compatibility version 5.6.0, current version 5.6.0)
@rpath/QtCore.framework/Versions/5/QtCore (compatibility version 5.6.0, current version 5.6.0)
/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
/System/Library/Frameworks/AGL.framework/Versions/A/AGL (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.1.0)
/usr/lib/libSystem.B.dylib (compatibility version …Run Code Online (Sandbox Code Playgroud)