如何在cpp中安装头文件

时间:2017-08-29 00:00:51

标签: c++

这与How to install clang header files?类似,但我无法发表评论或提问,因为它需要50多个声望。请原谅重复。

我在我的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系统上构建clang时,是否有必要(并且可能,如果是这样,如何)安装头文件(或者clang本身需要在所有期望的同时重新安装开发工具包及其头文件已安装)?

#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"

我使用了“&lt;&gt;”由@ 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

我还尝试制作这个clang文件夹的副本并包含在我的项目中,但当clang / AST / RecursiveASTVisitor.h有一行#include“clang / AST / Attr.h时,它最终会出现类似的错误“

我试图效仿这个例子http://clang.llvm.org/docs/RAVFrontendAction.html

在我的项目文件夹中,我有一个main.cpp,内容与上面链接中的教程相同,而CMakeList.txt是由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

1 个答案:

答案 0 :(得分:0)

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

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

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