Я загрузил исходный код Launchy и пытаюсь построить его в Visual Studio 2005. Проект Launchy построен с использованием VC7, поэтому мне пришлось обновить файлы проекта до VC8, и этот процесс, похоже, прошел хорошо , Тем не менее, Launchy также использует библиотеки Boost 1.33.1, и я создал библиотеки Boost 1.41.0 (опоры для Boost для упрощения сборки более новых библиотек), поэтому я также обновил проект, чтобы указать на мою новую установку Boost libs. Теперь я получаю следующую ошибку компоновщика:
fatal error LNK1104: cannot open file 'libboost_regex-vc80-mt-sgd-1_41.lib'
Я посмотрел в каталоге Boost lib, и самое близкое совпадение, которое я смог найти, это ...
libboost_regex-vc80-mt-gd-1_41.lib
Обратите внимание на пропущенные 's'. Я не понимаю, в чем разница в библиотеках, и ищет ли Visual Studio неправильную вещь или мой процесс сборки Boost не смог собрать правильные библиотеки. Кто-нибудь может указать мне правильное направление?
В качестве эксперимента я сделал копию имеющейся у меня библиотеки регулярных выражений и переименовал ее в то, что ищет компоновщик. Это дает мне длинный список ошибок компоновщика о символах, уже определенных в msvcrtd.lib, таких как:
error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" (??0type_info@@AAE@ABV0@@Z) already defined in libcmtd.lib(typinfo.obj)
Я попытаюсь собрать библиотеки Boost 1.33.1 и указать вместо этого файл проекта Launchy. Но я все еще хотел бы знать, что не так с моими библиотеками Boost 1.41.0.
Редактировать : я нашел ссылку в документах Boost на то, каковы библиотеки 's':
Используйте эту библиотеку при статическом связывании со стандартной библиотекой C ++ и библиотеками поддержки времени выполнения компилятора.
Так что, похоже, что 's' - правильные. Теперь мне просто нужно выяснить, как их построить.
Решение : мне удалось собрать недостающие надстроеки с помощью следующей командной строки.
bjam --build-type=complete msvc stage
Я запустил его после запуска файла boostrap.bat в директории, где живет boost.