我最近将Xcode更新为版本10.0,然后,当我尝试为iOS构建版本时,出现以下问题。
1:04:17:Diasteca项目的运行步骤... 11:04:17:开始:“ / Users / belladellifabio / Qt / 5.11.1 / ios / bin / qmake” /Users/belladellifabio/Desktop/QtProjects/Diasteca/mqtt_test/mqtt_test.pro -spec macx-ios-clang CONFIG + = iphoneos CONFIG + =设备CONFIG + = qml_debug 项目消息:该项目正在使用专用头,因此将绑定到此特定的Qt模块构建版本。 项目消息:在其他版本的Qt模块上运行此项目可能会在任何时候崩溃。 项目消息:这不是bug,而是使用Qt内部的结果。你被警告了! 11:04:18:进程“ /Users/belladellifabio/Qt/5.11.1/ios/bin/qmake”正常退出。 11:04:18:开始:“ / usr / bin / make” qmake_all make:对qmake_all不需要做任何事情。 11:04:18:进程“ / usr / bin / make”正常退出。 11:04:18:开始:“ / usr / bin / make” /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib = libc ++ -g -fPIC -std = gnu ++ 11 -arch arm64 -arch x86_64 -Xarch_arm64- miphoneos-version-min = 12.0 -Xarch_arm64 -isysroot / Applications / Xcode.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs / iPhoneOS11.3.sdk -Xarch_x86_64 -mios-simulator-version-min = 12.0- Xarch_x86_64 -isysroot / Applications / Xcode.app / Contents / Developer / Platforms / iPhoneSimulator.platform / Developer / SDKs / iPhoneSimulator11.3.sdk -fobjc-nonfragile-abi -fobjc-legacy-dispatch -fembed-bitcode-marker -Wall- W -DQT_COMPILER_SUPPORTS_SSE2 -DMQTT_TEST_LIBRARY -DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -I ../../ Diasteca / mqtt_test -I。 -I ../../../../ Qt / 5.11.1 / ios / mkspecs / common / uikit -I ../../../../ Qt / 5.11.1 / ios / include -I ../../../../ Qt / 5.11.1 / ios / include / QtNetwork -I ../../../../ Qt / 5.11.1 / ios / include / QtCore /5.11.1 -I ../../../../ Qt / 5.11.1 / ios / include / QtCore / 5.11.1 / QtCore -I ../../../../ Qt /5.11.1/ios/include/QtCore -I。 -I ../../../../ Qt / 5.11.1 / ios / mkspecs / macx-ios-clang -o qmqttclient.o ../../Diasteca/mqtt_test/qmqttclient.cpp clang:警告:没有这样的sysroot目录:'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk'[-Wmissing-sysroot] clang:警告:没有这样的sysroot目录:'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.3.sdk'[-Wmissing-sysroot] 在../../Diasteca/mqtt_test/qmqttclient.cpp:30中包含的文件中: 在../../Diasteca/mqtt_test/qmqttclient.h:33中包含的文件中: 在../../Diasteca/mqtt_test/qmqttglobal.h:33中包含的文件中: 在../../../../Qt/5.11.1/ios/include/QtCore/qglobal.h:47中包含的文件中: 在/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/utility:202包含的文件中: 在/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstring:61中包含的文件中: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string.h:61:15:致命错误:找不到'string.h'文件
真正的问题可能不是找不到文件错误,而是与qty尝试使用不再安装在系统上的SDK来构建应用程序有关。这是qt问题吗?如何指定用于构建应用程序的iOS SDK版本?有可能吗?
答案 0 :(得分:0)
Qt将SDK信息存储在生成输出和.pro.user文件的深处。
删除用户文件(如果您有自定义构建步骤,则可能要备份用户文件),完整的(阴影)构建树并修改.pro文件,以便没有QMAKE_MAC_SDK = macosx10.13
这样的行。 / p>
然后调用qmake并再次构建您的项目,不一致的地方应该消失了。
答案 1 :(得分:0)
最后,我找到并删除了.qmake.cache和.qmake.stash文件。我已经重新启动QtCreator,现在看来可以了。
答案 2 :(得分:0)
当Qt期望的iOS SDK与您安装的iOS SDK不同时,会发生这种情况。例如,Qt 5.13.1期望使用iPhoneOS13.1.sdk,但我的Xcode当前具有iPhoneOS13.2.sdk:
$ cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
$ ls -l
total 0
drwxrwxr-x 7 root wheel 224 Nov 5 2019 iPhoneOS.sdk
lrwxr-xr-x 1 root wheel 12 Jan 15 2020 iPhoneOS13.2.sdk -> iPhoneOS.sdk
$ cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
$ ls -l
total 0
drwxrwxr-x 8 root wheel 256 Jul 22 14:14 iPhoneSimulator.sdk
lrwxr-xr-x 1 root wheel 19 Jan 15 2020 iPhoneSimulator13.2.sdk -> iPhoneSimulator.sdk
要解决此问题,我们可以让Qt使用iPhoneOS13.2.sdk:
$ cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
$ ls -l
total 0
drwxrwxr-x 7 root wheel 224 Nov 5 2019 iPhoneOS.sdk
lrwxr-xr-x 1 root wheel 12 Jan 15 2020 iPhoneOS13.2.sdk -> iPhoneOS.sdk
$ sudo ln -s iPhoneOS.sdk iPhoneOS13.1.sdk
$ ls -l
total 0
drwxrwxr-x 8 root wheel 256 Jul 22 14:20 iPhoneOS.sdk
lrwxr-xr-x 1 root wheel 12 Jul 22 14:20 iPhoneOS13.1.sdk -> iPhoneOS.sdk
lrwxr-xr-x 1 root wheel 12 Jan 15 2020 iPhoneOS13.2.sdk -> iPhoneOS.sdk
$ cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
$ ls -l
total 0
drwxrwxr-x 8 root wheel 256 Jul 22 14:14 iPhoneSimulator.sdk
lrwxr-xr-x 1 root wheel 19 Jan 15 2020 iPhoneSimulator13.2.sdk -> iPhoneSimulator.sdk
$ sudo ln -s iPhoneSimulator.sdk iPhoneSimulator13.1.sdk
$ ls -l
total 0
drwxrwxr-x 8 root wheel 256 Jul 22 14:14 iPhoneSimulator.sdk
lrwxr-xr-x 1 root wheel 19 Jul 22 14:39 iPhoneSimulator13.1.sdk -> iPhoneSimulator.sdk
lrwxr-xr-x 1 root wheel 19 Jan 15 2020 iPhoneSimulator13.2.sdk -> iPhoneSimulator.sdk