运行 macdeployqt 时出现分段错误
segmentation fault when running macdeployqt
为了 运行 我的 Qt 应用程序在另一个 Mac 上,我的 .pro
文件中有以下两行
MACDEPLOY = `echo $$QMAKE_QMAKE | sed 's/qmake/macdeployqt/g'`
QMAKE_POST_LINK = $$MACDEPLOY $$OUT_PWD/$$TARGET\.app -qmldir=$$PWD -verbose=3
这适用于简单的 HelloWorld 应用程序。
它过去也适用于我的 'real' 应用程序,但现在我收到以下错误(我的应用程序在我的本地 Mac 上运行良好,没有这两行)
/Users/marc/Qt5.7/5.7/clang_64/bin/macdeployqt /Users/marc/workspaceZ2/build/build-Z2Nexx40-Desktop_Qt_5_7_0_clang_64bit-Release/Z2Nexx40\.app -qmldir=/Users/marc/workspaceZ2/Z2Nexx40 -verbose=3
ERROR: Could not find bundle binary for "/Users/marc/workspaceZ2/build/build-Z2Nexx40-Desktop_Qt_5_7_0_clang_64bit-Release/Z2Nexx40.app"
ERROR: "error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: can't open file: (No such file or directory)\n"
Log: Using otool:
Log: inspecting ""
ERROR: "error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: can't open file: (No such file or directory)\n" make: *** [Z2Nexx40.app/Contents/MacOS/Z2Nexx40]
Segmentation fault: 11 make:
在弹出的问题报告 window 中我看到了(但不确定我是否选择了其中的相关部分)
Binary Images:
0x10da98000 - 0x10dac4fff +macdeployqt (0) <46011DBB-126C-35A0-942A-ACD79B0BCC45> /Users/USER/*/macdeployqt
0x10dace000 - 0x10df2eff7 +org.qt-project.QtGui (5.7 - 5.7.0) <A41CBDE5-2955-3A57-BAE9-69001B210588> /Users/USER/*/QtGui.framework/Versions/5/QtGui
0x10e081000 - 0x10e595ff7 +org.qt-project.QtCore (5.7 - 5.7.0) <5F2F454C-CEE8-3E59-A3B7-94F51F5B9F96> /Users/USER/*/QtCore.framework/Versions/5/QtCore
0x10e6b2000 - 0x10e6b6fff com.apple.agl (3.3.1 - AGL-3.3.1) <4E401980-0F4F-33E2-A0CF-8C7CCF375F24> /System/Library/Frameworks/AGL.framework/Versions/A/AGL
0x7fff64f70000 - 0x7fff64fa7a47 dyld (360.22) <DC81CC9D-651A-3A45-8809-928282052BD3> /usr/lib/dyld
知道这里可能有什么问题吗?我最近升级到 XCode 8(并再次降级到 7.3),从 Qt5.6 升级到 5.7,但我不知道如何进行。
有关我可以尝试的提示会很有帮助!
显然,原因是 incorrect/incompatible plist 文件。
我必须向 plist 文件添加一个密钥,因此我的代码树中有我自己的 plist 文件。
可能在升级 XCode、我的 OS 或 Qt 后,此 plist 文件不再兼容。
我删除了我自己的 plist 文件,重建,并将我的密钥添加到新生成的 plist 文件中,一切都像以前一样正常工作。
为了 运行 我的 Qt 应用程序在另一个 Mac 上,我的 .pro
文件中有以下两行
MACDEPLOY = `echo $$QMAKE_QMAKE | sed 's/qmake/macdeployqt/g'`
QMAKE_POST_LINK = $$MACDEPLOY $$OUT_PWD/$$TARGET\.app -qmldir=$$PWD -verbose=3
这适用于简单的 HelloWorld 应用程序。 它过去也适用于我的 'real' 应用程序,但现在我收到以下错误(我的应用程序在我的本地 Mac 上运行良好,没有这两行)
/Users/marc/Qt5.7/5.7/clang_64/bin/macdeployqt /Users/marc/workspaceZ2/build/build-Z2Nexx40-Desktop_Qt_5_7_0_clang_64bit-Release/Z2Nexx40\.app -qmldir=/Users/marc/workspaceZ2/Z2Nexx40 -verbose=3
ERROR: Could not find bundle binary for "/Users/marc/workspaceZ2/build/build-Z2Nexx40-Desktop_Qt_5_7_0_clang_64bit-Release/Z2Nexx40.app"
ERROR: "error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: can't open file: (No such file or directory)\n"
Log: Using otool:
Log: inspecting ""
ERROR: "error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/otool: can't open file: (No such file or directory)\n" make: *** [Z2Nexx40.app/Contents/MacOS/Z2Nexx40]
Segmentation fault: 11 make:
在弹出的问题报告 window 中我看到了(但不确定我是否选择了其中的相关部分)
Binary Images:
0x10da98000 - 0x10dac4fff +macdeployqt (0) <46011DBB-126C-35A0-942A-ACD79B0BCC45> /Users/USER/*/macdeployqt
0x10dace000 - 0x10df2eff7 +org.qt-project.QtGui (5.7 - 5.7.0) <A41CBDE5-2955-3A57-BAE9-69001B210588> /Users/USER/*/QtGui.framework/Versions/5/QtGui
0x10e081000 - 0x10e595ff7 +org.qt-project.QtCore (5.7 - 5.7.0) <5F2F454C-CEE8-3E59-A3B7-94F51F5B9F96> /Users/USER/*/QtCore.framework/Versions/5/QtCore
0x10e6b2000 - 0x10e6b6fff com.apple.agl (3.3.1 - AGL-3.3.1) <4E401980-0F4F-33E2-A0CF-8C7CCF375F24> /System/Library/Frameworks/AGL.framework/Versions/A/AGL
0x7fff64f70000 - 0x7fff64fa7a47 dyld (360.22) <DC81CC9D-651A-3A45-8809-928282052BD3> /usr/lib/dyld
知道这里可能有什么问题吗?我最近升级到 XCode 8(并再次降级到 7.3),从 Qt5.6 升级到 5.7,但我不知道如何进行。
有关我可以尝试的提示会很有帮助!
显然,原因是 incorrect/incompatible plist 文件。 我必须向 plist 文件添加一个密钥,因此我的代码树中有我自己的 plist 文件。
可能在升级 XCode、我的 OS 或 Qt 后,此 plist 文件不再兼容。
我删除了我自己的 plist 文件,重建,并将我的密钥添加到新生成的 plist 文件中,一切都像以前一样正常工作。