BOOST версии 1.46.1 с Visual Studio 2010 P.E - PullRequest
1 голос
/ 19 апреля 2011

Я пытаюсь запустить несколько простых примеров с Boost, и я постоянно сталкиваюсь с этой ошибкой, и я пытался скомпилировать ее, но я не смог создать "libboost_system-vc100-mt-gd-1_46_1.Lib».

Я продолжаю сталкиваться с этой проблемой:

ошибка LNK1104: не удается открыть файл 'libboost_system-vc100-mt-gd-1_46_1.lib'

Кто-нибудь сталкивался с этой ошибкой раньше?Как правильно скомпилировать это с помощью NMAKE, потому что он постоянно говорит мне, что он имеет в виду «boost.regex без поддержки ICU / Unicode», который дает ему «фатальную ошибку U1073 и говорит, что не знает, как это сделать» ../src/c_regex_traits.cpp ".

Извините, если это беспорядок, это просто много информации, которая становится все более запутанной для меня.

Ответы [ 5 ]

3 голосов
/ 30 сентября 2011

Сначала вам нужно собрать библиотеки наддува.

Чтобы сделать это, откройте командную строку и перейдите для поднятия root, например, C: \ dev \ boost \ 1_46_1.

В зависимости от того,Чтобы создать приложение для 64-разрядных или 32-разрядных приложений, введите

(x64): bjam toolset=msvc address-model=64 variant=debug,release link=static threading=multi runtime-link=static,shared stage

(x86): bjam toolset=msvc variant=debug,release link=static threading=multi runtime-link=static,shared stage

, чтобы начать компиляцию.Будьте терпеливы, пока буст строится, это занимает много времени.Когда сборка завершена, вы можете найти файлы библиотеки в папке «stage \ lib».

Также обратите внимание, что вы можете удалить папку «bin.v2» после завершения сборки.

Теперь вынужно указать ваш проект VS2010 на эти библиотеки.Изменение части ответа mlimber:

В VS2010 щелкните правой кнопкой мыши свой проект, выберите «Свойства», а затем перейдите в «Свойства конфигурации» -> «Линкер» -> «Общие».Найдите «Дополнительные каталоги библиотек» в середине списка и добавьте туда C: \ Program Files \ Boost \ boost_1_46_1 \ lib (или что-то еще).

Другой способ сделать это - следующий

В VS2010 щелкните правой кнопкой мыши свой проект, выберите Свойства, а затем перейдите в Свойства конфигурации -> Каталоги VC ++.Найдите «Библиотечные каталоги» в середине списка и добавьте туда C: \ Program Files \ Boost \ boost_1_46_1 \ lib (или что-то еще).


Помимо вышеизложенного, можно также загрузитьиз

http://sourceforge.net/projects/boost/files/boost-binaries/1.46.1/

необходимые библиотеки (включая отсутствующий файл).

3 голосов
/ 20 апреля 2011

Ваш буст неправильно построен или установлен. Пожалуйста, следуйте инструкции о том, как установить boost.

2 голосов
/ 08 июля 2011

При попытке создать сетевую библиотеку Pion я столкнулся с очень похожей проблемой, поскольку Pion зависит от библиотеки Boost.

Моя сборка Boost была построена с использованием boostrap и bjam, а не BoostPro.

Я получил следующую ошибку: LINK: фатальная ошибка LNK1104: невозможно открыть файл 'boost_thread-vc100-mt-gd-1_46_1.lib'

Когда я посмотрел на каталог C: \ OpenSource \ boost_1_46_1 \ stage \ lib, я увидел, что каждое имя файла начинается с libboost_, а не boost_. Файл boost_thread-vc100-mt-gd-1_46_1.lib явно отсутствовал. Это вызвало у меня подозрение, что не все библиотеки Boost были созданы bjam. После небольшого исследования я перезапустил bjam с опцией - build-type = complete

Теперь я заметил, что он начал создавать имена файлов lib, начиная с boost_. Не говоря уже о том, что библиотека Pion теперь может успешно компилироваться.

Надеюсь, это придаст некоторую ясность этой теме.

1 голос
/ 23 апреля 2011

Я так понимаю, что вы использовали установщик BoostPro, но какие типы библиотек вы установили - только заголовки, статические ссылки, библиотеки DLL, все?

Если вы все сделали, то проблема, вероятно, в том, что у вас нет пути для повышения в ваших путях к библиотекам.Проблемное имя файла начинается с "libboost", который говорит мне, что вы пытаетесь использовать статически связанную версию, и это нормально.Вы должны добавить путь к библиотеке в ваш Makefile или настройки проекта для всех конфигураций сборки.Вероятно, это что-то вроде C:\Program Files\Boost\boost_1_46_1 (для новейшей версии в 32-разрядной версии Windows).

В VS2010 щелкните правой кнопкой мыши свой проект, выберите «Все конфигурации» вверху, затем перейдите кСвойства конфигурации |Линкер [или библиотекарь, если вы делаете библиотеку] |Генеральный.Найдите «Дополнительные каталоги библиотек» в середине списка и добавьте туда C:\Program Files\Boost\boost_1_46_1\lib (или что-то еще).

Сделайте это для каждого проекта в решении, использующем библиотеки Boost, которые не только для заголовков.

Для Makefile вам нужно найти пути к библиотекам и добавить Boost к нему аналогичным образомно от руки.

1 голос
/ 20 апреля 2011

Или в качестве альтернативы предложению ybungalobill используйте программу установки из www.boostpro.com .В инсталляторе вы должны просто выбрать буст-версии для msvc 10, и после установки обновите каталоги Visual Studio include и lib на листах свойств VS2010, чтобы указать на буст-каталог include и lib.

...