..., продолжение этого.
Из ответов, которые мне дали на мой упомянутый вопрос, я узнал, что:
- разные компиляторы используют разное оформление имен, что делает невозможным использование динамической библиотеки C++, созданной с помощью компилятора A, в проекте, построенном с помощью компилятора B,
- библиотека может быть построена как статическая с сохранением меня, включая n заголовочных и исходных файлов в проекте или экспортирующих символы. (По-прежнему не спасет пересборка библиотеки для использования с другим компилятором.)
Присмотревшись к SDL в свете сказанного, я понял, что его связывание имеет два уровня: в моем проекте SDL я статически связываюсь с libSDL.a, который, в свою очередь, динамически связывается с SDL. dll, тем самым устраняя необходимость в разных версиях .dll для разных компиляторов.
Вопрос в том, действительно ли это так и жизнеспособное решение проблемы, или я что-то упускаю (и что)?