Это большая проблема.
Сделай поиск по DLL ад.
Обычно DLL (или общие библиотеки в Linux) загружаются, но не все имена разрешаются во время загрузки. Происходит ленивая оценка, поэтому имена оцениваются при первом использовании. Проблема в том, что если 2 dll имеют одно и то же имя, то местоположение, в котором разрешается имя, зависит от того, в каком порядке выполняется поиск DLL (что зависит от порядка загрузки).
Если вы статически связываете, то у вас не будет проблем с вызовами методов, так как все они будут решены во время компиляции, а сторонние будут разрешены во время выполнения из DLL. Но как насчет структур, которые создаются бустом версии 1? Если вы затем передадите их сторонней библиотеке, которая затем передаст ее бусту версии-x. Структуры выложены одинаково?
Это очень сложная область, и когда возникают проблемы, ее очень трудно отладить.
Поэтому попробуйте использовать ту же версию.