Как собрать Boost 1.55 с помощью Visual Studio 2013?

Я пытаюсь собрать Boost 1.55 с Visual Studio 2013.

1) Я пытался использовать boost-binaries (увеличить-двоичные файлы), но Visual Studio писал об ошибке, когда я пытался скомпилировать:

ошибка LNK1104: не удается открыть файл
‘Libboost_serialization-vc120-мт-Г.Д.-1_55.lib. я использовал
boost_1_55_0-msvc-12.0-32.exe или 1.55.0-build2 (boost-binaries).

Я не нашел этот файл .lib в каталоге boost_1_55_0 \ lib32-msvc-12.0.

2) Я тоже пытался использовать эту программу BlueGo 0.1.7 (BlueGo). Работает очень плавно, и создают все библиотеки, которые мне нужны.

Проблема в том, что он создает .lib файлы, например так:

libboost_serialization-vc110-мт-Г.Д.-1_55.lib

Но я использую Visual Studio 2013, и вместо vc110 требуется использовать версию компилятора vc120, в противном случае возникает ошибка.

3) В конце концов я решил создать файлы dll / lib самостоятельно.

Я использовал следующее руководство на сайте буста:
Упрощенная сборка из источника.

Если вы хотите собрать из исходного кода с помощью Visual C ++, вы можете использовать простой
Процедура сборки описана в этом разделе. Откройте командную строку и
измените ваш текущий каталог на корневой каталог Boost. Затем введите
следующие команды:

bootstrap
.\b2

Выше я написал, что мне нужно было сделать.

Я запустил «Командную строку Native Tools VS2012 x86», изменил каталог на корневой каталог повышения и ввел команду:

bootstrap

Сразу же я получил ошибку:

C:\thirdparty\vs2013\x86\boost_1_55_0>.\bootstrap.bat
Building Boost.Build engine

Failed to build Boost.Build engine.
Please consult bootstrap.log for furter diagnostics.

You can try to obtain a prebuilt binary from

http://sf.net/project/showfiles.php?group_id=7586&package_id=72941

Also, you can file an issue at http://svn.boost.org
Please attach bootstrap.log in that case.

В файле журнала я заметил следующую ошибку:

execnt.c (56): фатальная ошибка C1083: не удается открыть включаемый файл:
‘tlhelp32.h’: нет такого файла или каталога

Файл bootstrap.log:

###
### Using 'vc12' toolset.
###

C:\thirdparty\vs2013\x86\boost_1_55_0\tools\build\v2\engine>if exist bootstrap rd /S /Q bootstrap

C:\thirdparty\vs2013\x86\boost_1_55_0\tools\build\v2\engine>md bootstrap

C:\thirdparty\vs2013\x86\boost_1_55_0\tools\build\v2\engine>cl /nologo /RTC1 /Zi /MTd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib /Febootstrap\jam0  command.c compile.c constants.c debug.c execcmd.c execnt.c filent.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathnt.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c class.c cwd.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c
command.c
compile.c
constants.c
debug.c
execcmd.c
execnt.c
execnt.c(56) : fatal error C1083: Cannot open include file: 'tlhelp32.h': No such file or directory
filent.c
frames.c
function.c
glob.c
hash.c
hdrmacro.c
headers.c
jam.c
jambase.c
jamgram.c
lists.c
make.c
make1.c
object.c
Generating Code...
Compiling...
option.c
output.c
parse.c
pathnt.c
pathsys.c
regexp.c
rules.c
scan.c
search.c
subst.c
timestamp.c
variable.c
modules.c
strings.c
filesys.c
builtins.c
md5.c
class.c
cwd.c
w32_getreg.c
Generating Code...
Compiling...
native.c
set.c
path.c
regex.c
property-set.c
sequence.c
order.c
Generating Code...

Я пытался проверить, существует этот файл или нет (‘tlhelp32.h’). Я создал проект и включил файл (‘tlhelp32.h’). Он скомпилирован без ошибок.

4) Также я попытался переименовать

libboost_serialization-vc110-мт-Г.Д.-1_55.lib

в

libboost_serialization-vc120-мт-Г.Д.-1_55.lib

Но Visual Studio снова выдал ошибку.

Error   1   error LNK1104: cannot open file 'libboost_serialization-vc120-mt-gd-1_55.lib'.

Не могли бы вы сказать мне, в чем проблема и как собрать Boost 1.55 с Visual Studio 2013?

Заранее спасибо!

8

Решение

Пути, заданные для переменной include, указывают на Windows 8.0 вместо Windows 8.1.

Файл, который вы упоминаете в Visual Studio 2013 и Windows 8.1, должен быть найден по следующему пути:

C:\Program Files (x86)\Windows Kits\8.1\include\um

Я изменил переменную INCLUDE из:

INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.0\include\um;C:\Program Files (x86)\Windows Kits\8.0\include\winrt

чтобы:

INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\INCLUDE;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt
4

Другие решения

Давайте пойдем шаг за шагом и сначала соберем систему ускорения сборки.

«Я включил файл (« tlhelp32.h »). Он скомпилирован без ошибок».

Итак, этот файл присутствует на диске. Переменные среды устанавливаются по-разному для cl.exe, который запускается bootstrap.bat. Включаемые файлы ищутся cl.exe в ВКЛЮЧАЮТ переменная env. Найдите tlhelp32.h на диске и в командной строке Visual Studio добавьте этот путь в INCLUDE:

set INCLUDE=%INCLUDE%;<path to tlhelp32.h>

Если какой-то .lib не будет найден, посмотрите на LIBPATH переменная env.

Я полагаю, что файлы VS2013 vcvars * .bat не установили среду должным образом.

2

Создание буст-библиотеки — это действительно головная боль. Так вот, что я нашел, и решил эту проблему;

У меня была та же ошибка, и я следовал SourceForge. По ссылке вы попадете в папку с zip-файлами lib и dll для версии boost. Вы можете скачать и распаковать связанную библиотеку, а когда скопируете ее в соответствующее местоположение, все будет хорошо;)

С помощью 2010 или же 2012 Конфигурация в вашем файле проекта будет лучше. Насколько я знаю 2013 год пока не удобен для 1.55.

0

Кажется, что Visual Studio 2013 (в моем случае это был Visual Studio 2013 Express с обновлением 4) не включает tlhelp32.h. Я только что отправил сообщение об ошибке об этой проблеме.
Чтобы решить эту проблему, я установил Windows SDK в дополнение к Visual studio (в моем случае это был Windows 8.1 SDK).

0

если вы используете Windows 8.1, откройте командную строку vs2012 x86 Tool, введите

echo %WindowsSdkDir%

если вы видите это ниже

C:\Program Files (x86)\Windows Kits\8.0\

это означает, что vcvars32.bat установил неправильную переменную INCLUDE для вас, проблема, помеченная как ошибка в MS сайт
так что решение таково:

отредактируйте vcvars32.bat, замените

%WindowsSDKDir%\include\um;

в

C:\Program Files (x86)\Windows Kits\8.1\include\um;

другие решения измените командную строку VS2012 x86 Native Tools, скопируйте и вставьте командную строку Vs2012 x86 Native Tools, щелкните правой кнопкой мыши, измените ссылку, замените все

Microsoft Visual Studio 11.0

в

Microsoft Visual Studio 12.0

открой ссылку, попробуй построить буст

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector