2017-08-29 262 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