ссылка по теме http://kevinaboos.wordpress.com/2013/07/23/clang-tutorial-part-ii-libtooling-example
Я использую CommonOptionsParser
проанализировать аргументы для инструмента clang:
// parse the command-line args passed to your code
CommonOptionsParser op(argc, argv);
// create a new Clang Tool instance (a LibTooling environment)
ClangTool Tool(op.getCompilations(), op.getSourcePathList());
// run the Clang Tool, creating a new FrontendAction (explained below)
int result = Tool.run(newFrontendActionFactory<SomeAction>());
и следующие параметры:
llvm/Debug+Asserts/bin/mytool /somePath/someSource.mm --
Когда я запускаю инструмент (на основе clang libtooling) для какого-либо исходного файла, инструмент пытается найти включенные файлы, например:
#import “SomeClass.h”
, или же #import<Foundation/Foundation.h>
И если он не может найти заголовки, он генерирует ошибки:
Неустранимая ошибка: файл «Foundation / Foundation.h» не найден.
Не могли бы вы сказать мне, если вы знаете, как я могу направить инструмент к стандартным фреймворкам? И как я могу направить его в какой-то заголовок пути поиска? Как я могу установить путь поиска заголовков при запуске инструмента?
Я решил проблему.
Вы можете добавить путь к фреймворку с опциями
-Iinclude -Ipath_for_foundation / Headers
после --
llvm/Debug+Asserts/bin/mytool /somePath/someSource.mm -- -Iinclude -Ipath_for_foundation/Headers
НО, стандартные фреймворки обычно включаются с именем фреймворка в качестве префиксов
#import <Foundation/Foundation.h>
исходные тексты фреймворков размещаются в папке Headers
поэтому лязг не может их найти.
Итак, я собираюсь найти решение для этой проблемы.
ОБНОВИТЬ:
решение
llvm/Debug+Asserts/bin/mytool /somePath/someSource.mm -- -F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/
Других решений пока нет …