Code: Select all
build
CMakeLists.txt
header_1.h
main.cpp
test
CMakeLists.txt
main.cpp
tests.cpp
< /code>
Ich habe diesen CMakelists.txt, um meine ausführbare Datei zu generieren (ohne Test): < /p>
cmake_minimum_required (VERSION 3.1)
project (my_project)
set (CMAKE_CXX_STANDARD 23)
set (CXX_STANDARD_REQUIRED ON)
set (CMAKE_CXX_EXTENSIONS OFF)
add_executable(my_app main.cpp)
target_include_directories(my_app PUBLIC)
set(BINARY ${CMAKE_PROJECT_NAME}_test)
file(GLOB_RECURSE TEST_SOURCES LIST_DIRECTORIES false *.h *.cpp)
set(SOURCES ${TEST_SOURCES})
find_package(GTest REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
add_executable(${BINARY} ${TEST_SOURCES})
add_test(NAME ${BINARY} COMMAND ${BINARY})
target_link_libraries(${BINARY} PUBLIC ${CMAKE_PROJECT_NAME} ${GTEST_LIBRARIES} pthread)
< /code>
, aber ich erhalte immer wieder Linkerfehler, da die zweite CMake meine Anwendung als Bibliothek sucht, nicht als ausführbar: < /p>
[100%] Linking CXX executable my_project_test
/usr/bin/ld: cannot find -lmy_project: No such file or directory
< /code>
Ich habe um Hilfe gegoogelt, aber ich konnte kein einfaches Beispiel finden. Es gibt ein Beispiel für Google -Seite, aber es zeigt nur den zweiten CMake, nicht das erste.
Könnte jemand bitte dabei helfen?