CMake文件分别构建主文件和测试文件

问题描述

我具有以下目录结构:

main.cpp
CMakeLists.txt
src/
    some_function.h
    some_function.cpp
    some_class.h
    some_class.cpp
    CMakeLists.txt
test/
    catch.hpp
    tests.cpp 
    CMakeLists.txt

项目根目录中的CmakeLists.txt:

cmake_minimum_required(VERSION 3.16)
set(CMAKE_CXX_STANDARD 11) # C++11

project(main)

add_subdirectory (src)

add_executable(main main.cpp)

target_link_libraries (main some_class)
src /中的

CmakeLists.txt:

add_library (some_class some_class.h some_class.cpp some_function.h some_function.cpp)

以上内容可用于构建和运行main目标。

现在,我要构建并运行测试。文件test.cpp包含some_function.h和some_class.h。但是,我不确定如何在此处添加src /目录。

这是我到目前为止在test /中得到的结果(导致some_function.h中该函数的链接错误):

cmake_minimum_required(VERSION 3.16)
set(CMAKE_CXX_STANDARD 11) # C++11

project(tests)

set(CATCH_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
add_library(Catch INTERFACE)
target_include_directories(Catch INTERFACE ${CATCH_INCLUDE_DIR})

add_executable(tests tests.cpp)
target_link_libraries(tests Catch)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)