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.
Спасибо всем за вашу помощь.