Почему я не могу связаться с библиотекой spdlog, установленной с conan - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть простой проект CMake и я пытаюсь использовать библиотеку spdlog (версия 1.5.0), установленную conan.

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

undefined reference to `spdlog::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

Я не уверен, что проблема связана с моей установкой, conan или библиотекой spdlog. Кто-нибудь может мне помочь, где искать?

Мои локальные настройки: Ubuntu 19.04, QT Creator, Clang 9 (в IDE и conan), conan 1.24.0

1 Ответ

2 голосов
/ 03 апреля 2020

Пожалуйста, начните сначала с «Приступая к работе» из документов Conan https://docs.conan.io/en/latest/getting_started.html, убедитесь, что оно работает, а затем начните с него, чтобы создавать свои собственные примеры.

In Приступая к работе у вас будет пример использования существующих библиотек в ConanCenter. Есть также заметное «Важное» уведомление, которое гласит:

If you are using GCC compiler >= 5.1, Conan will set the compiler.libcxx to the old ABI for backwards compatibility. You can change this with the following commands:

$ conan profile new default --detect  # Generates default profile detecting GCC and sets old ABI
$ conan profile update settings.compiler.libcxx=libstdc++11 default  # Sets libcxx to C++11 ABI

В основном автоматически определяемый профиль по умолчанию использует libstdc ++, в то время как ваш компилятор, скорее всего, использует libstdc ++ 11. Вам нужно изменить профиль по умолчанию:

$ conan profile update settings.compiler.libcxx=libstdc++11 default

, а затем снова выполнить «conan install» и собрать.

...