Sysroot неверен в Ninja при попытке собрать библиотеку

Я пытаюсь создать библиотеку Google Skia на Mac, но когда пытаюсь запустить

ninja -C out/Static/

чтобы создать библиотеку, он дает мне эту ошибку (после многих, многих похожих ошибок):

[14/1073] compile ../../src/gpu/GrBackendTextureImageGenerator.cpp
FAILED: obj/src/gpu/gpu.GrBackendTextureImageGenerator.o 
c++ -MD -MF obj/src/gpu/gpu.GrBackendTextureImageGenerator.o.d -DNDEBUG -DSK_ASSUME_GL=1 -DSK_ENABLE_API_AVAILABLE -DSK_GAMMA_APPLY_TO_A8 -DSKIA_IMPLEMENTATION=1 -DSK_GL -I../.. -Wno-attributes -fstrict-aliasing -fPIC -fvisibility=hidden -isysroot b\'/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk\\n\' -O3 -Wno-sign-conversion -Wno-unused-parameter -std=c++17 -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -c ../../src/gpu/GrBackendTextureImageGenerator.cpp -o obj/src/gpu/gpu.GrBackendTextureImageGenerator.o
clang: warning: no such sysroot directory: 'b'/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk\n'' [-Wmissing-sysroot]
In file included from ../../src/gpu/GrBackendTextureImageGenerator.cpp:8:
In file included from ../../include/gpu/GrContext.h:11:
In file included from ../../include/core/SkMatrix.h:11:
In file included from ../../include/core/SkRect.h:11:
In file included from ../../include/core/SkPoint.h:11:
In file included from ../../include/core/SkMath.h:11:
../../include/core/SkTypes.h:26:18: fatal error: 'TargetConditionals.h' file not found
        #include "TargetConditionals.h"
                 ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.
ninja: build stopped: subcommand failed.

Похоже, что каталог sysroot b '/ Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.14.sdk \ n' неверен, однако /Applications/Xcode.app/Contents/ Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.14.sdk существует и /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include / имеет файл TargetConditionals.h.

Раньше я не использовал ниндзя, но я попытался поискать в toolchain.ninja, но не смог найти способ изменить переменную sysroot. Я также переустановил инструменты командной строки Xcode и Xcode, но безрезультатно. Любая помощь будет принята с благодарностью!


person Thomas Faulhaber    schedule 24.06.2020    source источник


Ответы (1)


Я тоже много боролся. Решения, которые я пробовал:

  1. xcode-select --install для установки инструментов командной строки. Но раньше говорилось, что инструменты командной строки уже установлены.
  2. Пытался переустановить xcode, чтобы исправить некоторую проблему со связью.
  3. Пробовал другие решения, найденные в Интернете.

Наконец, у меня сработало переключение на python2. У меня были установлены python2 и python3. Моя переменная среды пути в .zshrc давала приоритет python3. Итак, все внутренние скрипты, сгенерированные ниндзя, имели приоритет python3.

Я временно удалил python3, вы можете оставить оба, но следует изменить его приоритет. Затем заново создайте каталог сборки, используя gn. Тогда используйте ниндзя для постройки.

Примечание: clang: warning: такого каталога sysroot нет: 'b'/Applications/: Здесь 'b' используется для представления строкового литерала, который следует рассматривать как байтовый литерал в python3. Так что это могло быть причиной.

person Harry    schedule 27.10.2020