Ошибки линкера, пытаясь добавить тест Google в базовый проект CmakeC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибки линкера, пытаясь добавить тест Google в базовый проект Cmake

Сообщение Anonymous »

Мой каталог проектов выглядит так: < /p>

Код: Выделить всё

build
CMakeLists.txt
header_1.h
main.cpp
test
CMakeLists.txt
main.cpp
tests.cpp
< /code>
У меня есть этот cmakelists.txt, чтобы генерировать мой исполняемый файл (без учета теста): < /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)
Я пытаюсь добавить тест подпадника для создания модульных тестов с помощью Google Test, но я борюсь. есть: < /p>
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>
Но я продолжаю получать ошибки линкера, потому что второй Cmake ищет мое приложение в качестве библиотеки, а не исполняемый файл: < /p>
[100%] Linking CXX executable my_project_test
/usr/bin/ld: cannot find -lmy_project: No such file or directory
< /code>
Я гугл за помощью, но я не смог найти простой пример. Есть пример страницы Google, но он показывает только второй Cmake, а не первый.
может кто -нибудь помочь с этим?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ke-project
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»