Я пытаюсь связать Libtorrent статически с Visual Studio 2013, но продолжаю получать эту ошибку после сборки Libtorrent и компиляции моего проекта:
LINK : fatal error LNK1104: cannot open file 'libboost_system-vc120-mt-1_55.lib'
Поскольку я строю статически, у меня нет libboost_system-vc120-мт-1_55.lib скорее у меня есть libboost_system-vc120-т-ы-1_55.lib. Я построил бусты со следующими параметрами:
"toolset=msvc-12.0 variant=release link=static runtime-link=static --with-date_time --with-system --with-thread"
и Libtorrent с этим:
"toolset=msvc-12.0 boost=source boost-link=static geoip=off encryption=tommath link=static dht=on logging=none statistics=off i2p=on variant=release"
Чего мне не хватает, так как встроенный Libtorrent думает, что он общий, а не статический?
Вы указали runtime-link=static
при строительстве boost
, Это означает, что вам нужны оба libtorrent
и ваше приложение (и любую другую библиотеку, которую вы можете использовать) для статической ссылки на библиотеку времени выполнения C ++.
Итак, вам нужно добавить runtime-link=static
в командной строке сборки для libtorrent
и выберите соответствующую опцию компилятора для VC ++ для вашего приложения (либо /MT
опция командной строки или соответствующая Runtime Library
вариант под Code Generation
в IDE).
В противном случае, даже если вам как-то удастся скомпилировать все это, вы получите некоторые впечатляющие ошибки времени выполнения, потому что одна часть вашей программы будет использовать статическую версию среды выполнения, а другая — общую.