Я включаю в свой проект tinygltf и sfml. Когда я включаю tinygltf с этими параметрами:
#define TINYGLTF_IMPLEMENTATION
#define STB_IMAGE_IMPLEMENTATION
#define STB_IMAGE_WRITE_IMPLEMENTATION
#include <tiny_gltf.h>
, я получаю несколько ошибок определения:
/usr/bin/ld.gold: error: sfml/lib/libsfml-graphics-s.a(ImageLoader.cpp.o): multiple definition of 'stbi_write_jpg'
/usr/bin/ld.gold: _objs/client_lib/loader.pic.o: previous definition here
Это всего лишь небольшой фрагмент ошибок, но для большинства функций stb есть похожая ошибка. Поэтому я попытался исправить это, добавив tinygltf следующим образом:
#define TINYGLTF_IMPLEMENTATION
#include <tiny_gltf.h>
Однако теперь есть только одна исключительная ошибка:
_objs/client_lib/loader.pic.o:loader.cpp:function tinygltf::LoadImageData(tinygltf::Image*, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, int, int, unsigned char const*, int, void*): error: undefined reference to 'stbi_is_16_bit_from_memory'
Кажется, что две библиотеки слегка зависят разные версии стб. Есть ли способ исправить это?
Я использую tinygltf версии 2.2.0 и sfml версии 2.5.1.