Qt5 找不到目标条件



我刚刚更新到OS X Mavericks中最新版本的命令行工具,现在在编译我的(以前工作的(代码时,它会抛出以下错误

> clang: warning: no such sysroot directory:
> '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk'
> In file included from ../QtOpenGL/Main.cpp:1: In file included from
> ../../Qt/5.3/clang_64/lib/QtWidgets.framework/Versions/5/Headers/QApplication:1:
> In file included from
> ../../Qt/5.3/clang_64/lib/QtWidgets.framework/Versions/5/Headers/qapplication.h:45:
> In file included from
> /Users/BB/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qcoreapplication.h:45:
> In file included from
> /Users/BB/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qglobal.h:76:
> /Users/BB/Qt/5.3/clang_64/lib/QtCore.framework/Headers/qsystemdetection.h:196:12:
> fatal error: 'TargetConditionals.h' file not found
> #  include <TargetConditionals.h>
>            ^ 1 error generated. make: *** [Main.o] Error 1 20:29:52: Le processus "/usr/bin/make" s'est terminé avec le code 2. Erreur lors
> de la compilation/déploiement du projet QtOpenGL (kit : Desktop Qt
> 5.3.0 clang 64bit) When executing step "Make"

有谁知道如果更改此行

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk

从 SDK 8 到 9 会起作用吗?如果是这样,我可以在Qt5的参数中的什么位置更改它?

供其他人参考,我通过编辑我的平台 mkspec 文件解决了这个问题:

/

users/nic/Qt/5.3/clang_64/mkspecs/qdevice.pri

更改以下行:

!host_build:QMAKE_MAC_SDK = macosx10.8

对此:

!host_build:QMAKE_MAC_SDK = macosx10.9

请务必清理您的项目并再次运行 qmake。

网卡。

也可以通过将以下行添加到.pro文件中来编译项目

QMAKE_MAC_SDK = macosx10.9

如果你在OS X以外的其他平台上编译,BRabbit27解决方案的改进将是:

macx {
QMAKE_MAC_SDK = macosx10.9
}

我刚刚升级到XCode 9,我开始在macOS Sierra(10.12(上遇到这个问题。问题是 Xcode 将默认符号链接移动到 10.13。要修复:

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
sudo ln -s MacOSX.sdk MacOSX10.12.sdk

Qt 5.5,MacOS 10.10.4中也有同样的问题。我从项目目录中删除了.qmake.conf和.qmake.stash。

我发现我的项目根目录中的文件".qmake.cache"引用了Mac OS 10.8。解决方案是删除文件并从头开始构建项目。

我在安装 Xcode 10.13 之前安装了 Qt 5.9.1。自从我升级Xcode以来,开始出现带有以下警告的错误消息。

:-1: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk' [-Wmissing-sysroot]

我解决了更改以下行的问题

QMAKE_MAC_SDK = macosx

QMAKE_MAC_SDK = macosx10.13

在以下文件中:

path_where_I_installed_qt/Qt/5.9.1/clang_64/mkspecs/qdevice.pri

我希望它对你有用。

对我来说

,手动删除输出目录内容解决了这个问题(Qt 5.9,Xcode9,MacOS 10.12.6(。清洁/重建确实留下了一些腐败的东西。

对于Qt 5.8和iOS版本,我在XCode文件夹中添加了指向sdk的符号链接:

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
ln -s iPhoneOS.sdk iPhoneOS10.0.sdk
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
ln -s iPhoneSimulator.sdk/ iPhoneSimulator10.2.sdk

我在macosx10.13上使用Qt5.8,我通过添加以下行来编辑文件/usr/local/Cellar/qt-legacy-formula/5.8.0_1/mkspecs/qdevice.pri来解决此问题:

!host_build:QMAKE_MAC_SDK = macosx10.13

我只是想通过添加我的经验来评论这一点。 我最近更新到High Sierra,XCode 9.2和Qt5.10,XCode许可证消息让我很沮丧!

在 qdevice.pri 中,我更改了

QMAKE_MAC_SDK = macosx

QMAKE_MAC_SDK = macosz10.13

但这不是我所需要的全部。 我不得不从构建目录中删除.qmake.stash和Makefile文件。 我不确定是否需要删除 Makefile,但我还是这样做了。 然后我删除了 *.pro.user 文件,以便我可以强制 QtCreator 重新配置。 这迫使我或让我选择更新的Qt版本。 在此之前,我认为它正在尝试使用旧版本的东西。 因此,清除项目中对旧内容的所有引用并选择新内容非常重要。

方法 1

每次升级Xcode时都会出现这种错误

因此,您可以在构建之前删除Qt中的缓存文件,或者在收到错误时删除

rm {your target build folder}/.qmake.stash

rm {your project folder}/.qmake.stash

如果您不知道在哪里可以找到.qmake.stash,请尝试

find ~ -name .qmake.stash

方法 2

不推荐,因为使用Xcdoe应用程序时可能会遇到构建错误

苹果操作系统

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
sudo ln -s iPhoneOS.sdk iPhoneOS{version}.sdk

苹果模拟器

cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/
sudo ln -s iPhoneSimulator.sdk iPhoneSimulator{version}.sdk

相关内容

  • 没有找到相关文章

最新更新