OCLint не может обнаружить предварительно скомпилированные заголовки рабочей области / проекта

Я получаю сообщение об ошибке ниже при попытке построить мой агрегат OCLint. Мы используем предварительно скомпилированные заголовки в рабочей области, и хотя на них ссылаются точно так же в основной цели и агрегате OCLint, по какой-то причине агрегат OCLint не может обнаружить pch. Вот почему не может быть найдена зависимость "CocoaLumberjack / CocoaLumberjack.h".

Я использую XCode 7.1.1 под OXS 10.11.1. Любые предложения приветствуются.

* === СОЗДАТЬ ЦЕЛЬ [Target] ПРОЕКТА [Project] С КОНФИГУРАЦИЕЙ Debug === Проверить зависимости ProcessPCH /var/folders/nv/y04q5c5s30567pk7w8lts7zr0000gn/C/com.apple.DeveloperTools/7.1.1-7B1005/Xcode.1-7B1005/Xcode/SharedPrecompiledHeaders/[Проект]-Prefix-canqfypuftycqgglhiqfotrflhkv/[Проект]-Prefix.pch.pch [Проект]/[Проект] -Prefix.pch обычный armv7 target-c com.apple.compcgl..1_0.compiler cd /Users/.../Dev/Applications/[Project] export LANG = en_US.US-ASCII export

PATH = "/ Applications / Xcode.app / Содержание / Разработчик / Платформы /iPhoneOS.platform/ Разработчик / USR / бен:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/.../StaticCodeAnalysis/OBJ-C/OCLint/oclint-0.8.1/ бен:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/ USR / libexec:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/ местные / бен: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/bin: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/local/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Tools:/usr/local/bin: / USR / бен: / бен: / USR / SBIN: / SBIN"

:: /Users/.../Dev/Applications/[Project]/[Project]/[Project]-Prefix.pch:16:9: фатальная ошибка: файл 'CocoaLumberjack/CocoaLumberjack.h' не найден [#import]

    ^

1 ошибка сгенерирована. ** СТРОИТЬ НЕУДАЧИ ** [Проект]

Не удалось выполнить следующие команды сборки: ProcessPCH /var/folders/nv/y04q5c5s30567pk7w8lts7zr0000gn/C/com.apple.DeveloperTools/7.1.1-7B1005/Xcode/7.1.1-7B1005/Xcode/SharedPrecompiledHeaders/[Project]-kfflgvg_vf_vvvvvvvvrv [Project]-Prefix.pch.pch [Project]/[Project]-Prefix.pch обычный armv7 target-c com.apple.compilers.llvm.clang.1_0.compiler (1 сбой)*

2 ответа

Решение

Обновление: мне удалось решить эту проблему, выполнив следующую команду:

xcodebuild -workspace MyWorkspace.xcworkspace -scheme MyScheme

Я столкнулся с этой проблемой на macOS Monterey ( 12.2) при попытке запустить OCLint черезpre-commit. Сообщение об ошибке от OCLint намекало на отсутствующую «базу данных компиляции», а затем давало 'stdio.h' file not foundдля заголовков стандартной библиотеки системы C.

Ручное решение

Решение состояло в том, чтобы убедиться, что файл существует в каталоге сборки C верхнего уровня. Очевидно, это создается автоматически, если вы используете CMake, но проект не использовал CMake.

Создание файла вручную сработало:

:

      [
{
  "directory": ".",
  "command": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc  -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk -o enum-test.arm64.o -c enum-test.c",
  "file": "enum-test.c"
},
{
  "directory": ".",
  "command": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc  -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk -o test-args.arm64.o -c test-args.c",
  "file": "test-args.c"
},
{
  "directory": ".",
  "command": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc  -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk -o test-vars.arm64.o -c test-vars.c",
  "file": "test-vars.c"
},
{
  "directory": ".",
  "command": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc  -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk -o cidr_ranges.arm64.o -c cidr_ranges.c",
  "file": "cidr_ranges.c"
},
{
  "directory": ".",
  "command": "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc  -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk -o rectangle.arm64.o -c rectangle.c",
  "file": "rectangle.c"
}
]

Сообщение об ошибке OCLint:

В моем случае ошибка намекала на отсутствие compile_commands.jsonпрежде чем дать file not foundза .hзаголовочные файлы:

      $ oclint  -enable-global-analysis -enable-clang-static-analyzer -max-priority-3 0  ./enum-test.c  -p=build -verbose --extra-arg -isysroot=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk

Error while trying to load a compilation database:
Could not auto-detect compilation database from directory "build"
No compilation database found in ~/src/spikes/c-variables-and-data-types/build or any parent directory
fixed-compilation-database: Error while opening fixed database: No such file or directory
json-compilation-database: Error while opening JSON database: No such file or directory
Running without flags.

Compiling ~/src/spikes/c-variables-and-data-types/enum-test.c ...
 - Failed
Clang Static Analyzer ~/src/spikes/c-variables-and-data-types/enum-test.c - Finished with Failure

Compiler Errors:
(please be aware that these errors will prevent OCLint from analyzing this source code)

~/src/spikes/c-variables-and-data-types/enum-test.c:8:10: 'stdio.h' file not found

Clang Static Analyzer Results:

~/src/spikes/c-variables-and-data-types/enum-test.c:8:10: 'stdio.h' file not found


OCLint Report

Summary: TotalFiles=0 FilesWithViolations=0 P1=0 P2=0 P3=0


[OCLint (https://oclint.org) v21.10]
Другие вопросы по тегам