首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >咯咯作响。target_include_directories“没有这样的文件或目录”

咯咯作响。target_include_directories“没有这样的文件或目录”
EN

Stack Overflow用户
提问于 2019-12-08 11:15:46
回答 1查看 1.8K关注 0票数 1

这是我的c++项目。

代码语言:javascript
复制
├── CMakeLists.txt
├── include
│   └── ccli
        └──  # headers
├── src
│   ├── CMakeLists.txt
│   ├── exec_expr.cpp
│   ├── GlobalContext.cpp
│   ├── main.cpp
    └──  # others

/CMakeLists.txt:

代码语言:javascript
复制
cmake_minimum_required(VERSION 3.5)                                                                  

project(main)                                                                                        

set(CMAKE_CXX_FLAGS "-Wall -std=c++17")                                                              

find_package(LLVM REQUIRED CONFIG)                                                                   
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION} in ${LLVM_INSTALL_PREFIX}")                       
message(STATUS "Using LLVMConfig.cmake in ${LLVM_DIR}")                                              

find_package(Clang REQUIRED CONFIG HINTS "{LLVM_INSTALL_PREFIX}/lib/cmake/clang")                    
message(STATUS "Found Clang in ${CLANG_INSTALL_PREFIX}")                                             
message(STATUS "Found Cland headers in ${CLANG_INCLUDE_DIRS}")                                       
message(STATUS "Found LLVM headers in ${LLVM_INCLUDE_DIRS}")                                         

add_subdirectory(src)                                                                                

add_executable(                                                                                      
    main                                                                                             
        src/main.cpp                                                                                 
)                                                                                                    

target_include_directories(main PRIVATE ${LLVM_INCLUDE_DIRS})                                        
target_include_directories(                                                                          
    main PUBLIC                                                                                      
        ${PROJECT_SOURCE_DIR}/include                                                                
)                                                                                                    

# Fixes clang linking error.                                                                         
target_compile_definitions(main PUBLIC -DLLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING)                 
target_link_libraries(main ccli readline)  

/src/CMakeLists.txt:

代码语言:javascript
复制
cmake_minimum_required (VERSION 3.5)                             

add_library(                                                     
    ccli STATIC                                                  
        exec_expr.cpp                                            
        runToolOnCode.cpp                                        
        GlobalContext.cpp                                        
        Utility.cpp                                              
)                                                                

target_include_directories(ccli PRIVATE "${LLVM_INCLUDE_DIR}")   
target_include_directories(                                      
    ccli PRIVATE                                                 
        ${PROJECT_SOURCE_DIR}/include                            
)                                                                

target_link_libraries(                                           
    ccli PRIVATE                                                 
        clangTooling                                             
        clangFrontend                                            
        clangStaticAnalyzerFrontend                              
)                                                                

src/main.cpp顶部:

代码语言:javascript
复制
#include "ccli/runToolOnCode.hpp"          
#include "ccli/GlobalContext.hpp"          
#include "ccli/exec_expr.hpp"              
#include "ccli/Utility.hpp"                

#include "clang/Frontend/FrontedActions.h"  //<- error occures here                                   

问题是add_library()中使用的所有文件都可以包含和使用clang,但是main.cpp不能。此外,我也不明白为什么允许main.cpp包含/ include /ccli头部,正如我所理解的,这意味着这段代码运行良好:

代码语言:javascript
复制
target_include_directories(                                                                          
    main PUBLIC                                                                                      
        ${PROJECT_SOURCE_DIR}/include                                                                
)

但这不是?:

代码语言:javascript
复制
target_include_directories(main PRIVATE ${LLVM_INCLUDE_DIRS})

最后是cmake的输出。

代码语言:javascript
复制
-- Found LLVM 8.0.0 in /usr/lib/llvm-8
-- Using LLVMConfig.cmake in /usr/lib/llvm-8/cmake
-- Found Clang in /usr/lib/llvm-8
-- Found Cland headers in /usr/lib/llvm-8/include
-- Found LLVM headers in /usr/lib/llvm-8/include
-- Configuring done
-- Generating done
-- Build files have been written to: /c_repl/build

出厂量

代码语言:javascript
复制
/c_repl/src/main.cpp:6:10: fatal error: clang/Frontend/FrontedActions.h: No such file or directory
 #include "clang/Frontend/FrontedActions.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
CMakeFiles/main.dir/build.make:62: recipe for target 'CMakeFiles/main.dir/src/main.cpp.o' failed
make[2]: *** [CMakeFiles/main.dir/src/main.cpp.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/main.dir/all' failed
make[1]: *** [CMakeFiles/main.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2

如有任何帮助或建议,将不胜感激。谢谢。在linux上工作的PS

代码语言:javascript
复制
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.3 LTS
Release:        18.04
Codename:       bionic

PPS:对不起我的英语不好。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-08 13:39:42

似乎是一个错误,尝试:#包括"clang/Frontend/FrontendActions.h“

希望这有帮助

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59234825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档