Clang с ошибкой Xcode 4: недействительный параметр nodistribute - PullRequest
2 голосов
/ 30 июня 2011

Я пытался заставить работать инструмент анализа clang, но я не уверен, как преодолеть конкретную ошибку при ее запуске. Я установил X-Code 4.0 и iOS 5, и получаю вывод:


Создание графа зависимостей классов.

Запуск /Users//Desktop/HomeWork2/tools/AnalysisTool.app/Contents/Resources/llvm/utils/scan-build с аргументами: (

"-o",
"/Users/<homedir>/Development/myApp/Static analysis/results",
"-v",
"--status-bugs",
"-checker-cfref",
"-warn-dead-stores",
"-warn-objc-methodsigs",
"-warn-objc-missing-dealloc",
"-warn-objc-unused-ivars",
"-analysistool-checker-access-control",
"-analysistool-checker-coersions",
"-analysistool-checker-cyclomatic-complexity",
"-analysistool-checker-conditional-logical-complexity",
"-analysistool-checker-conditional-nesting-depth",
"-analysistool-checker-loop-nesting-depth",
"-analysistool-checker-dealloc-safety",
"-analysistool-checker-declaration-conventions",
"-analysistool-checker-discouraged-method-calls",
"-analysistool-checker-error-handling",
"-analysistool-checker-extra-parentheses",
"-analysistool-checker-finalize",
"-analysistool-checker-format-strings",
"-analysistool-checker-kvo",
"-analysistool-checker-memory-management",
"-analysistool-checker-naming-conventions",
"-analysistool-checker-shadow",
"-analysistool-checker-unused-ivars",
"--use-cc=/Developer/usr/bin/llvm-gcc-4.2",
"--use-c++=/Developer/usr/bin/llvm-g++-4.2",
"-generate-class-dependency-graph",
xcodebuild,
"CONFIGURATION_BUILD_DIR=/Users/<homedir>/Development/myApp/Static analysis/build",
"CONFIGURATION_TEMP_DIR=/Users/<homedir>/Development/myApp/Static analysis/build",
"-configuration",
Debug,
clean,
build

).

scan-build: отправка отчетов для этого прогона в '/ Users // Разработка / AMMO_SVN_Projects / MobXpo / Branchs / MobXpo_v12 / Статический анализ / результаты / 2011-06-30-8'.

scan-build: исполняемый файл 'clang-cc' не найден в '/Users//Desktop/SWEN_646/HW2/tools/AnalysisTool.app/Contents/Resources/llvm/utils/libexec'.

scan-build: Использование 'clang-cc' из пути.

xcodebuild: ошибка: недопустимая опция '-nodistribute'

Использование: xcodebuild [-project] [[-target] ... | -alltargets] [-configuration] [-arch] ... [-sdk [|]] [=] ... [] .. , xcodebuild -workspace -scheme [-configuration] [-arch] ... [-sdk [|]] [=] ... [] ... xcodebuild -version [-sdk [|] []] xcodebuild -list [[-project] | [-workspace]] xcodebuild -showsdks

Опции:

-usage                print full usage
-verbose              provide additional status output
-project NAME         build the project NAME
-target NAME          build the target NAME
-alltargets           build all targets
-workspace NAME       build the workspace NAME
-scheme NAME          build the scheme NAME
-configuration NAME   use the build configuration NAME for building each target
-xcconfig PATH        apply the build settings defined in the file at PATH as overrides
-arch ARCH            build each target for the architecture ARCH; this will override architectures defined in the project
-sdk SDK              use SDK as the name or path of the base SDK when building the project
-parallelizeTargets   build independent targets in parallel
-jobs NUMBER          specify the maximum number of concurrent build operations
-showsdks             display a compact list of the installed SDKs
-list                 lists the targets and configurations in a project, or the schemes in a workspace
-find BINARY          display the full path to BINARY in the provided SDK
-version              display the version of Xcode; with -sdk will display info about one or all installed SDKs

Я исследовал Интернет, но не нашел ничего, что помогло бы решить мою конкретную проблему. Я думаю, что мне нужно отредактировать инструмент clang, чтобы он не включал опцию «nodistribute», но я не уверен, есть ли другой способ или где получить исходный код для этого. Заранее спасибо за любую помощь.

1 Ответ

5 голосов
/ 02 июля 2011

Я нашел способ обойти это после долгих поисков ответа, который я решил посмотреть, смогу ли я изменить строку кода, включающую опцию -nodistribute.Поэтому я использовал grep, чтобы найти строку кода в пакете .app, а затем открыл ее в vi.Я добавил комментарий # к строке и бинго к гонкам.

Файл относительно корня пакета приложения находится по адресу: ./Resources/llvm/utils/scan-build

...