Qt5未find目标条件

我只是更新到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。

NIC。

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

 QMAKE_MAC_SDK = macosx10.9 

如果你在OS X以外的平台上编译,那么对BRabbit27解决scheme的改进是:

 macx { QMAKE_MAC_SDK = macosx10.9 } 

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

我刚刚升级到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 

我发现我的项目根目录下的“.qmake.cache”文件引用了Mac OS 10.8。 解决的办法是删除文件并从头开始构build项目。

我在安装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.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 

对我来说,手动删除输出目录的内容就解决了问题(Qt 5.9,Xcode9,MacOS 10.12.6)。 清洁/重build的确留下了一些腐败的东西。