Для нашего проекта мы создаем BOOST для Windows, используя опции --layout=system, доступные для b2.
Созданная dll не будет нести никакой информации, и это будут обычные имена dll.
Пример: boost_iostream.dll производится вместо boost_iostream-vc141-mt-gd-1_65_1.dll.
Теперь find_package(Bost 1.65.1 REQUIRED COMPONENTS iostream) не выходит из строя, но когда я пытаюсь связать свой исполняемый файл с помощью Boost::iostream, cmake сообщает мне, что не может найти файл boost_iostream-vc141-mt-gd-1_65_1.dll.
Есть ли способ сообщить cmake, что dll не несет информацию о версиях, как ожидалось, а имеет простые имена?
Boost::iostream - правильная переменная или есть еще одна, специфичная для не версированной dll?
К сожалению, я не могу изменить способ сборки boost, и я бы не хотел использовать find_library для всех библиотек.
Я запускаю cmake 3.11. Я взглянул на модуль FindBoost .. для Windows он действительно ожидает версию набора инструментов (-vc141-) в зависимости от версии компилятора. Если я что-то не пропустил, найти dll с другой схемой именования невозможно.
@AbruzzoForteeGentile Привет, я столкнулся с той же проблемой; ты решил эту проблему?
@piwi Нет, я не разобрался, и я не могу вспомнить, что я сделал в этих обстоятельствах (когда я пишу, у меня больше нет с собой проекта, над которым я работал тогда)





Какая у вас версия CMake? stackoverflow.com/a/42124857/2799037