相关疑难解决方法(0)

Qt 5.1和Mac:使macdeployqt无法正常工作的错误

我有一个问题,因为该版本5.1rc2QtMac 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并重建而无需更改)

macos qt macdeployqt

15
推荐指数
2
解决办法
6398
查看次数

如何使用Xcode 4.6.2至7.1.1获得对Mac OS X 10.6部署的c ++ 0x/c ++ 11支持

我在项目中大量使用c ++ 0x/c ++ 11特性,特别是代码块和共享指针.当我将操作系统升级到10.8 Mountain Lion(编辑:从10.7开始)时,我被迫升级Xcode.在升级Xcode时,我失去了编译我的c ++项目以便在10.6系统上部署的能力,因为我收到以下错误.

clang: error: invalid deployment target for -stdlib=libc++ (requires Mac OS X 10.7 or later)

苹果似乎试图通过不允许开发者支持Snow Leopard来强迫人们进行升级.这让我很生气.Arrrggg!

我能做什么?

编辑:经过几次来回评论后,应该明确10.6不附带系统libc ++库.因此,仅仅为10.6部署构建libc ++项目是不够的.您还需要在您的10.6发行版中包含libc ++二进制文件,或者静态链接到它们.所以让我们继续我已经在做的那个前提.

更新1:此问题最初打算用于Xcode 4.5.2(问题提出时的最新版本).我已经升级到Xcode 4.6.3并更新了问题和答案以反映这一点.

更新2:我已经升级到Xcode 5.0.2.以下所选答案中列出的技术仍可按预期工作.

更新3:我已经升级到Xcode 5.1.下面的答案中列出的技术尚不适用于此版本!

更新4:我已经升级到Xcode 6.0.1.以下所选答案中列出的技术似乎再次起作用.

更新5:我已经升级到Xcode 7.1.1.下面选定答案中列出的技术似乎再次起作用,但有一个重要的警告.您必须禁用Bitcoding用于AppThinning因为开源LLVM版本不支持它(也不应该).因此,您需要在开源和Apple LLVM clang之间切换,以便为10.6和tvOS/watchOS进行编译(因为这些操作系统需要Bitcoding).

c++ osx-snow-leopard c++11 libc++ xcode4.6

11
推荐指数
2
解决办法
9432
查看次数

标签 统计

c++ ×1

c++11 ×1

libc++ ×1

macdeployqt ×1

macos ×1

osx-snow-leopard ×1

qt ×1

xcode4.6 ×1