Проект с тестами не видит основную библиотеку

Вот очень упрощенная структура моего проекта:

MI
|
| - Core
|   | foo.h
|   | foo.cpp
|   | foo_test.cpp
|   | CMakeLists.txt
|
| - Test
|   | CMakeLists.txt
|
| - CMakeLists.txt

При сборке проекта получается следующее:

MI
| - _build
|   | - Core
|       | - Debug
|         | Cored.dll
|         | Cored.lib
|       | - Release
|         | Core.dll
|         | Core.lib
|
|   | - Test
|       | - Debug
|         | Test.exe
|       | - Release
|         | Test.exe
|
| - Core
|   | foo.h
|   | foo.cpp
|   | foo_test.cpp
|   | CMakeLists.txt
|
| - Test
|   | CMakeLists.txt
|
| - CMakeLists.txt

Проблема в том, что при запуске текстов в студии (MI/_build/Test/Debug/Test.exe) не хватает библиотеки Core.dll. Как можно решить эту ситуацию? Нужно копировать фалы библиотеки? Или, может, библиотеку и тесты в одну папку помещать? В качестве ответа также можно ссылку на какой-нибудь проект, где можно посмотреть правильную реализацию. Если нужны какие-то cmake файлы, я дополню вопрос, их много и они все связаны.


Ответы (1 шт):

Автор решения: Vil

Сталкивался с подобной проблемой, но только на Linux. Помогло вот это. Там сначала создается статическая библиотека на основе исходного кода программы (APP_LIB_NAME)

set(APP_LIB_SOURCE
    IFoo.cpp
    Foo.cpp
    Bar.cpp
)

add_library(${APP_LIB_NAME} ${APP_LIB_SOURCE})  

, которая потом используется при компиляции тестов:

target_link_libraries(${TEST_APP_NAME} ${APP_LIB_NAME} ${CPPUTEST_LDFLAGS})
→ Ссылка