【问题标题】:Cmake find header files matching cpp codeCmake查找匹配cpp代码的头文件
【发布时间】:2018-09-13 23:21:12
【问题描述】:

我知道有上千个这样的问题,但即使在看了这些问题之后我也很苦恼。

我的目录树

./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} )

【问题讨论】:

标签: c++ linux cmake


【解决方案1】:

您没有链接 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})

【讨论】:

    猜你喜欢
    • 2018-12-05
    • 2012-08-30
    • 2022-11-11
    • 1970-01-01
    • 2021-04-03
    • 2021-09-15
    相关资源
    最近更新 更多