【问题标题】:"no such sysroot directory" while building qt project构建qt项目时“没有这样的sysroot目录”
【发布时间】:2019-02-22 10:27:44
【问题描述】:

MacOS Mojave 版本 10.14 (18A389)。

今天我将 Xcode 更新到版本 10.0 (10A255)。当我尝试构建我的 Qt 项目时结束,我收到一个错误:

clang: warning: no such sysroot directory: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk' [-Wmissing-sysroot]
In file included from ../greed/timediagram.cpp:1:
In file included from ../../../Qt/5.9.1/clang_64/lib/QtGui.framework/Headers/QtGui:3:
In file included from /Users/arsenyspiridonov/Qt/5.9.1/clang_64/lib/QtGui.framework/Headers/QtGuiDepends:3:
In file included from /Users/arsenyspiridonov/Qt/5.9.1/clang_64/lib/QtCore.framework/Headers/QtCore:4:
In file included from ../../../Qt/5.9.1/clang_64/lib/QtCore.framework/Headers/qglobal.h:47:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/utility:202:
In file included from /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: fatal error: 'string.h' file not found
#include_next <string.h>
              ^~~~~~~~~~
1 error generated.
make: *** [timediagram.o] Error 1
16:13:47: Процесс «/usr/bin/make» завершился с кодом 2.
Ошибка при сборке/установке проекта greed (комплект: Desktop Qt 5.9.1 clang 64bit)
Во время выполнения этапа «Сборка»

有什么问题?如何解决?

【问题讨论】:

    标签: xcode macos qt


    【解决方案1】:

    将“QMAKE_MAC_SDK = macosx10.14”添加到您的 .pro 文件中,并从您的构建目录(或多个目录)中手动删除 .qmake.stash。

    【讨论】:

    • *.pro 文件 — Qt 项目文件?我必须在哪里写?
    • MacOS下目录中没有.qmake.stash
    • .pro 文件由 QtCreator 创建... .qmake.stash 在应用程序的目标构建文件夹中创建。
    • 对我来说,从我的 debug 和 release 构建目录中删除 .qmake.stash 解决了没有 .pro 编辑的问题,从 Sierra->Mojave 升级后。
    • 只需从我的构建目录中删除 .qmake.stash 即可解决问题,无需 .pro 编辑。
    【解决方案2】:

    在我的例子中,我将 xcode 更新到了最新版本,因此我没有在文件夹中使用 10.13 版本,而是使用 MacOSX10.14.sdk(这是文件夹 MacOSX.sdk 的符号链接)

    所以,你可以在终端上用这段代码解决问题:

    sudo ln -s MacOSX.sdk/ MacOSX10.13.sdk
    

    位于当前文件夹。

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      我刚刚重新安装了 Qt。现在一切正常

      【讨论】:

        【解决方案4】:

        这对我有帮助:

        1. 在 Qt Creator 中关闭项目。
        2. 删除 code 目录中的 .pro.user 文件。
        3. 在文本编辑器(不在 Qt Creator 中)中将 QMAKE_MAC_SDK = macosx10.14QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.14 添加到您的 .pro 文件中。将 10.14 替换为您想要构建的任何 MacOS 版本。
        4. 在 Qt Creator 中重新打开项目。它将重新配置。
        5. 构建。

        【讨论】:

          【解决方案5】:

          添加到 sellen 的回答:如果您无法找到 .qmake.stash 文件,或者如果您的构建文件夹中没有 .qmake.stash 文件,请尝试使用终端找到它:

          find /path/to/base/folder -name ".qmake.stash"
          

          在我的情况下,我的 build parent 文件夹中有一个 .qmake.stash 文件,但我的 build 文件夹中没有。不知道它是如何到达那里的,但不知何故 QMake 捡起了它,一旦我删除它并重新启动 Qt Creator,一切又开始工作了。

          【讨论】:

            【解决方案6】:

            快速的解决方案是在 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs 文件夹中创建新的快照,您可以复制现有的快捷方式,将它们更改为您需要的名称。

            【讨论】:

              【解决方案7】:

              这件事最近发生在我身上,我的 Xcode 需要更新。因此,我建议您退出 xcode 并尝试更新您当前的版本,看看是否能解决您的问题。

              【讨论】:

              • 问题说明Xcode已经更新,所以建议更新没用。
              猜你喜欢
              • 2012-04-01
              • 2014-06-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-05-26
              • 1970-01-01
              相关资源
              最近更新 更多