Как отлаживать код статической библиотеки в CLion
У меня есть проект в CLion. Я решил вынести часть кода в статическую библиотеку. Сделал это следующим образом:
- Создал отдельную папку в корне проекта
- Поместил туда все исходники, необходимые для этой библиотеки
- Сделал там отдельный файл CMakeLists.txt со следующим содержанием:
cmake_minimum_required(VERSION 3.20)
project(MyLib)
set(CMAKE_CXX_STANDARD 17)
include_directories(.)
add_library(MyLib STATIC source1.cpp source2.cpp source3.cpp)
- CMakeLists.txt в корне преобразовал следующим образом:
cmake_minimum_required(VERSION 3.20)
project(MyExe)
set(CMAKE_CXX_STANDARD 17)
include_directories(../../boost_1_73_0)
link_directories(../../boost_1_73_0/libs)
add_subdirectory(MyLib)
add_executable(MyExe main.cpp)
if (DEFINED DEBUG)
find_library(MY_LIB_DEBUG MyLib ${PROJECT_SOURCE_DIR}/cmake-build-debug/MyLib)
target_link_libraries(MyExe PUBLIC ${MY_LIB_DEBUG})
else()
find_library(MY_LIB_RELEASE MyLib ${PROJECT_SOURCE_DIR}/cmake-build-release/MyLib)
target_link_libraries(MyExe PUBLIC ${MY_LIB_RELEASE})
endif()
Всё компилируется и работает, функции из библиотеки вызываются. Но когда я пытаюсь поставить точку останова, например, в файле source1.cpp, она отмечается перечёркнутым кругом при запуске отладки и высвечивается подсказка "The breakpoint will not currently be hit. No executable code is associated with this line.".
Вопрос: что нужно поменять в проекте, чтобы я мог проходить отладчиком по исходникам статической библиотеки, если я собираю её в составе этого же проекта и все исходники у меня есть?
P.S. Когда работал с Visual Studio, она как-то сама подхватывала код статических либ, даже если те были собраны отдельным проектом в составе этого же решения.