我的项目树是:
Name
- Catch-tests
-- Catch CMAKE
-- test.cpp (included as exec in cmake)
- include (stores headers)
-- foo.h
- src (stores implementation)
-- foo.cpp
- Cmake for entire project
- main.cpp
因此,当我在 test.cpp 中包含 foo.h 并尝试调用在 foo.h 中声明并在 foo.cpp 中实现的函数时,Catch 说一切都失败了,没有任何实现。CMAKE (catch2)
add_executable(Catch_tests_run AbstractTests.cpp ShadingTests.cpp)
CMAKE(项目)
cmake_minimum_required(VERSION 3.16)
project(Hexa)
set(CMAKE_CXX_STANDARD 20)
# GLAD is OpenGL library loader.
add_library("glad" "lib/glad/src/glad.c")
include_directories("lib/glad/include")
# SDL2 provides low level controll to keyboard, sound, video, etc.
find_package(SDL2 REQUIRED)
include_directories(Hexa ${SDL2_INCLUDE_DIRS})
add_executable(Hexa main.cpp
src/ShadingEngine.cpp
include/ShadingEngine.h
lib/imgui/imconfig.h
lib/imgui/imgui.cpp
lib/imgui/imgui.h
lib/imgui/imgui_demo.cpp
lib/imgui/imgui_draw.cpp
lib/imgui/imgui_internal.h
lib/imgui/imgui_widgets.cpp
lib/imgui/imstb_rectpack.h
lib/imgui/imstb_textedit.h
lib/imgui/imstb_truetype.h
lib/imgui/imgui_impl_opengl3.cpp
lib/imgui/imgui_impl_opengl3.h
lib/imgui/imgui_impl_sdl.cpp
lib/imgui/imgui_impl_sdl.h)
target_link_libraries(Hexa "glad")
target_link_libraries(Hexa ${SDL2_LIBRARIES})
add_subdirectory(Catch_tests)