2017-08-29 257 views
0

这与How to install clang header files?类似,但我无法发表评论或提出问题,因为它需要50点以上的声望。请原谅重复。如何在cpp中安装头文件

我在我的MacOS上安装了clang(位于/ usr/bin/clang),我认为它默认安装在Mac上,但是,当我尝试在cpp文件中包含clang头文件时,它表示它们不是发现

/Users/jzhu/go/src/github.com/codelingo/sandbox/test/cpp/main.cpp:7:10: fatal error: 'clang/AST/ASTConsumer.h' file not found #include <clang/AST/ASTConsumer.h> ^ 1 error generated

问:是否有必要(和可能,如果是这样,如何)时铛已经安装并内置MacOS的系统(或者根本铛本身需要在重新安装安装的头文件与所有需要的开发工具包及其头文件一起安装)?

#include <clang/AST/ASTConsumer.h> 
#include "clang/AST/RecursiveASTVisitor.h" 
#include "clang/Frontend/CompilerInstance.h" 
#include "clang/Frontend/FrontendAction.h" 
#include "clang/Tooling/Tooling.h" 

我已经使用了“<>”由@建议nurmurat在How to install clang header files?但它并没有解决问题。

clang包可以在/ Users/username/ccompiler/llvm/tools/clang/include/clang中找到。

$ pwd 
/Users/username/ccompiler/llvm/tools/clang/include/clang 
$ ls 
ARCMigrate  Basic   Driver   FrontendTool  Rewrite   Tooling 
AST   CMakeLists.txt  Edit   Index   Sema   module.modulemap 
ASTMatchers  CodeGen   Format   Lex   Serialization 
Analysis  Config   Frontend  Parse   StaticAnalyzer 

我也试图让这个铛文件夹的副本,包括在我的项目,但它与当铛/ AST/RecursiveASTVisitor.h有一个行的#include“铛/ AST类似的错误结束/Attr.h”

我是想以此为榜样http://clang.llvm.org/docs/RAVFrontendAction.html

在我的项目文件夹中,我有相同的内容在上面的链接教程和CMakeList.txt这是一个的main.cpp由CLION自动创建

cmake_minimum_required(VERSION 3.8) 
project(cpp) 

set(CMAKE_CXX_STANDARD 17) 

set(SOURCE_FILES main.cpp) 
add_executable(cpp ${SOURCE_FILES}) 
include_directories(${LLVM_INCLUDE_DIRS}) 

PS:我跟着https://clang.llvm.org/get_started.html安装了叮当声。

$ clang --version 
Apple LLVM version 8.1.0 (clang-802.0.42) 
Target: x86_64-apple-darwin16.7.0 
Thread model: posix 
InstalledDir: /Library/Developer/CommandLineTools/usr/bin 

回答

0

您似乎在某个时候自己安装了编译器,并且无法找到库头文件。使用-I标志告诉它在哪里可以找到他们:

-I/Users/username/ccompiler/llvm/tools/clang/include 

https://clang.llvm.org/docs/CommandGuide/clang.html

+0

感谢您的答复,但错误依然存在。 clang ++ -I/Users/username/ccompiler/llvm/tools/clang/include/clang main.cpp main.cpp:7:10:致命错误:'clang/AST/ASTConsumer.h'文件未找到 #包括 ^ 生成1个错误。 – Junyu

+0

@Junyu:我在路上有一个太多的'clang'。现在就试试? –

+0

前面的道路是正确的路径 $ PWD /用户/用户名/ ccompiler/LLVM /工具/铛/包括/铛 $ LS ARCMigrate \t \t基本\t \t \t驱动\t \t \t FrontendTool \t \t重写\t \t \t工具 AST \t \t \t的CMakeLists.txt \t \t编辑\t \t \t指数\t \t \t塞玛\t \t \t module.modulemap ASTMatchers \t \t的CodeGen \t \t \t格式\t \t \t莱克斯\t \t \t系列化 分析\t \t配置\t \t \t前端\t \t解析\t \t \t StaticAnalyzer – Junyu