Android Studio + отладка собственного кода Conan

Недавно я переключился с ndk-build на систему сборки cmake в Android Studio (я использую версию 3.2.1), и, поскольку у меня есть зависимости в моем коде C ++ от некоторых сторонних библиотек, я решил переключиться на conan C ++ менеджер пакетов, чтобы упростить мою кросс-сборку. Чтобы сделать это правильно, я решил попробовать это на небольшом примере, чтобы убедиться, что все будет работать так, как ожидалось.

Я выполнил инструкции со страницы интеграции со студией Android, и все компилируется и работает нормально , но я не могу отлаживать собственный код из студии Android. Мои точки останова в коде C ++ игнорируются.

Когда я удалил все зависимости кода от библиотеки libpng и в CMakeLists.txt, закомментировал

conan_basic_setup(TARGETS)

line Я снова смог отладить код C ++.

Я пытался покопаться в макросе cmake "conan_basic_setup", но заблудился внутри. Я даже попытался создать профиль отладки конана для кросс-компиляции, изменив

build_type=Release

в

build_type=Debug

в файле профиля, но без результата.

У кого-нибудь есть квитанция о правильной настройке для отладки?


person Bernard Čupić    schedule 07.12.2018    source источник
comment
Как правило, пакеты conan не упаковывают все артефакты отладки в случае Windows (.pdbs большие) или могут страдать от проблемы перемещения (пути предварительно скомпилированных пакетов к источникам отличаются на исходной машине, которая их построила, по отношению к пользовательской машине). Я бы посоветовал попробовать средство отслеживания проблем: github.com/conan-io/conan или # канал conan slack в команде CppLang для более интерактивных обсуждений.   -  person drodri    schedule 10.12.2018
comment
Я не упоминал, но моя среда сборки находится на Linux-машине, и у меня есть локальный сервер Conan. Все зависимости построены локально. Я опубликовал проблему на их трекере, а также здесь.   -  person Bernard Čupić    schedule 10.12.2018


Ответы (1)


Наконец, мне удалось решить эту проблему, добавив параметр NO_OUTPUT_DIRS в макрос conan_basic_setup.

Так что вместо

conan_basic_setup(TARGETS)

должен быть

conan_basic_setup(TARGETS NO_OUTPUT_DIRS)

По-видимому, без этого параметра conan изменяет путь bin / и lib / output и портит настройку студии Android. Теперь я могу отлаживать свой код.

person Bernard Čupić    schedule 11.12.2018