Ber*_*rgP 2 c++ compilation include header-files llvm-clang
相关链接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>());
Run Code Online (Sandbox Code Playgroud)
和下一个参数:
llvm/Debug+Asserts/bin/mytool /somePath/someSource.mm --
Run Code Online (Sandbox Code Playgroud)
当我在某个源文件上运行我的工具(基于clang libtooling)时,工具尝试查找包含的文件,fe :
#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
Run Code Online (Sandbox Code Playgroud)
但是,标准框架通常包含在框架名称中作为前缀
#import <Foundation/Foundation.h>
Run Code Online (Sandbox Code Playgroud)
框架源被放置在被调用的文件夹中Headers,因此clang无法找到它们.所以,我将找到解决该问题的方法.
更新:
解
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/
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3786 次 |
| 最近记录: |