Cmake找到与cpp代码匹配的头文件

时间:2018-04-04 11:51:05

标签: c++ linux cmake

我知道有这样的一千个问题,但即使在看过这些问题之后我也在挣扎。

我的目录树

./src/main/cpp/main.cpp
./src/main/cpp/CascadeLoader.cpp
./resources/headers/CascadeLoader.h

如果在main.cpp中我使用

#include "CascadeLoader.cpp"

我的代码有效,但如果我做了

#include "CascadeLoader.h"

我收到

的构建错误
undefined reference to CascadeLoader::CascadeLoader()

我的CMakeLists.txt我添加了

cmake_minimum_required(VERSION 2.8)
project( ASLInterpreter )
find_package ( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( ASLInterpreter src/main/cpp/main.cpp )
target_link_libraries( ASLInterpreter ${OpenCV_LIBS} )

1 个答案:

答案 0 :(得分:2)

您没有链接CascadeLoader.cpp文件,这就是您收到未定义的引用错误的原因。

尝试

add_executable( ASLInterpreter src/main/cpp/main.cpp /src/main/cpp/CascadeLoader.cpp)

您还可以将.cpp文件组合在一起,如果您有很多这些文件,这些文件非常有用。

set(include /src/main/cpp/CascadeLoader.cpp
            /src/main/cpp/example.cpp)
add_executable( ASLInterpreter src/main/cpp/main.cpp ${include})