VС++ vs2013 код с boost powered by nuget не создает

Я новичок в VС++ и Boost. Моя проблема в том, что я хочу использовать Boost 1.56.0 в моем проекте VС++ Visual Studio 2013 (поэтому я использую vc120).

Я установил Boost через NuGet (https://www.nuget.org/packages/boost/). Кажется, все в порядке, но когда я пытаюсь построить свой проект, он говорит:

Неустранимая ошибка LNK1104: Не удается открыть файл "libboost_thread-vc120-mt-gd-1_56.lib".

Вы знаете, где именно проблема, и как я могу это исправить?

Я думал, что установка пакета с использованием NuGet сделает всю работу, чтобы заставить все работать самостоятельно. Я знаю, что компоновщик не может найти файл lib (фактически вообще не было процесса сборки). Но я не знаю, как я могу исправить эту проблему.

Я думаю, что не стоит вручную компилировать Boost с VC120 и добавлять папку lib к дополнительным путям компоновщика. Почему я должен использовать NuGet?

Любая помощь приветствуется - я пытаюсь и ищу в Интернете столько часов, и я не мог решить проблему.

Спасибо, Стефан

Ответ 1

Как упоминалось ранее, Boost Nuget не может содержать все возможные скомпилированные библиотеки для всех возможных версий конфигурации и компилятора. Тем не менее, существуют предварительно скомпилированные пакеты Nuget, а также исходные пакеты. Вот список всех пакетов 1.56.0 Boost Nuget https://getboost.codeplex.com/releases/view/126256

В вашем случае я бы предложил использовать предварительно скомпилированный boost_thread-vc120.1.56.0. Не 1.57 еще!

Если вы ленивы, вы также можете использовать boost-vc120.1.56.0, который зависит от всех предварительно скомпилированных библиотек Boost для Visual Studio 2013.

Ответ 2

Похоже, что последняя версия NuGet for boost не включает в себя каждый пакет файлов lib и dll (источник).

Вы должны установить boost_thread в целом.

Ответ 3

BlueGo - это инструмент, который создает Boost с помощью Visual Studio 2010/12/13. Вам просто нужно запустить приложение, выбрать свою конфигурацию и нажать кнопку "Создать" - все остальное работает автоматически.

BlueGo

Его можно скачать здесь: https://bitbucket.org/Vertexwahn/bluego

Ответ 4

Поскольку пакет NuGet Boost больше не содержит файлы lib, потому что пакет становится большим, я решил создать Boost самостоятельно.

Я выполнил следующие инструкции: Build Boost для Visual Studio - также прочитайте второй пост!

Я видел это слишком поздно, но, возможно, это полезно для кого-то еще: Есть предустановленная установка Boost! Здесь вы можете скачать программу установки, которая установит Boost (определенной версии) для 32/64 бит (в зависимости от того, какой файл вы выберете). Существуют также уже имеющиеся версии (vc100, vc110, vc120).

Проблема при использовании NuGet заключается в том, что у вас есть

  • Установите пакет Boost (чтобы получить исходные файлы)
  • Установите файлы lib (см. ссылку , предоставленный Марко А.)

Это может быть очень громоздким, поскольку доступны не все библиотеки Boost. Например. файлы lib ASIO отсутствовали. Поэтому, если вы в них нуждаетесь, вам придется скомпилировать его снова самостоятельно. Таким образом, вы испортили свой проект пакетами NuGet и самокомпилированными файлами boost. Если NuGet предоставляет все необходимое, я бы использовал способ NuGet.

Наконец, как я уже сказал, мне нужен ASIO lib, и поэтому я, наконец, скомпилировал Boost самостоятельно. Казалось, что просто использовать пакет NuGet.

Спасибо всем за вашу помощь.