cpplint.py& cmake:如何指定包含文件

时间:2016-11-05 14:10:33

标签: c++ cmake include-path cpplint

假设我有一个具有以下目录结构的项目:

myproject
├── .git [...]
├── CMakeLists.txt
└── src
    ├── CMakeLists.txt
    ├── foo.cc
    └── foo.h

如果在src/foo.cc中我添加了#include "foo.h"之类的标题文件,然后在其上运行了Google cpplint.py,则会抱怨

src/foo.cc:8:  Include the directory when naming .h files  [build/include] [4]

所以我将其包含为#include "./foo.h"。现在我又得到了一个抱怨:​​

src/foo.cc:8:  src/foo.cc should include its header file src/foo.h  [build/include] [5]

但是,如果我将其包含为#include "src/foo.h",则编译器无法使用我当前的CMake设置找到它。这是我的两个CMakeLists.txt文件的样子:

的CMakeLists.txt:

project(myproject)
add_subdirectory(src)

的src /的CMakeLists.txt:

set(SRCS foo.cc)
add_executable(foo ${SRCS})

我使用CMake的方式在某种程度上是根本错误的吗?我应该完全删除src/CMakeLists.txt文件,并使用完整路径指定基本CMakeLists.txt中的所有源文件吗?

或者我应该忽略cpplint的投诉,因为它们不适合如何设置CMake项目?

1 个答案:

答案 0 :(得分:0)

在您的顶级CMakeLists.txt中添加include_directories(${CMAKE_SOURCE_DIR}),就像Wander建议的那样:

project(myproject)
include_directories(${CMAKE_SOURCE_DIR})
add_subdirectory(src)