Я работаю над списком cmakelist, связанным с Конаном, но у меня возникла проблема. Я не понимаю почему, но мой cmake не работает на некоторых устройствах. У двух моих друзей нет связи между библиотекой SMFL и двоичным файлом. Я использую рекомендованный и модный способ сделать это в соответствии с документом conan, который называется «Целевой подход». (https://docs.conan.io/en/1.4/integrations/cmake/cmake_generator.html)
Есть код:
include(${CMAKE_SOURCE_DIR}/.Build/conanbuildinfo.cmake)
conan_basic_setup(TARGETS)
[...]
target_link_libraries(sfml PRIVATE tools CONAN_PKG::sfml)
И ошибка:
[WARNING] Critical error :: System :: In
/home/[...]/Sources/Tools/PluginLoader/PluginLoader.cpp at line 93 ::
./libsfml.so: undefined symbol: _ZN2sf7Texture12loadFromFileERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS_4RectIiEE
Тогда я попробовал два других решение. Упоминание в документации как «Глобальный подход переменных». Первый:
include(${CMAKE_SOURCE_DIR}/.Build/conanbuildinfo.cmake)
conan_basic_setup()
[...]
target_link_libraries(sfml PRIVATE tools ${CONAN_LIBS})
Второй:
include(${CMAKE_SOURCE_DIR}/.Build/conanbuildinfo.cmake)
conan_basic_setup()
[...]
target_link_libraries(sfml PRIVATE tools ${CONAN_LIBS_SFML})
Но первый не компилируется. А вторая работает там, где «Целевой подход» не работает, но не создает ссылку на рабочие устройства «Целевого подхода».
Заранее благодарен за любую помощь.