Я пытаюсь установить библиотеку boost (1.53), чтобы использовать ее в 64-битном приложении под Windows. Тем не менее, я получаю серию ошибок при попытке настроить его так же, как я делал с MinGW32 и более старыми буст-релизами …
Теперь, я продолжаю терпеть неудачу на первом шаге — выполнение ./bootstrap.sh. Следующие ошибки возвращаются:
mkdir bootstrap
gcc -o bootstrap/jam0 command.c compile.c constants.c debug.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 pathunix.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c pwd.c class.c native.c md5.c w32_getreg.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c execunix.c fileunix.c
function.c: In function ÔÇścheck_alignmentÔÇÖ:
function.c:222:5: warning: cast from pointer to integer of different size
builtins.c:33:23: fatal error: sys/wait.h: No such file or directory
compilation terminated.
execunix.c:17:26: fatal error: sys/resource.h: No such file or directory
compilation terminated.
fileunix.c:98:17: fatal error: ar.h: No such file or directory
compilation terminated.
Когда я запускаю bootstrap.bat, Boost.Build собирается сам, но позже я получаю странные ошибки. Сначала я попытался выполнить символическую ссылку на исполняемые файлы x86_64-w64-mingw32-gcc и т. Д. На gcc, однако это привело к многочисленным ошибкам «Отказано в доступе», поэтому я просто скопировал и вставил файлы x86_64-w64-mingw32-XX в простой файл XX .exe те. Теперь я могу начать правильную сборку, но в конечном итоге:
...failed gcc.archive bin.v2\libs\thread\build\gcc-mingw-4.5.3\debug\address-model-64\link-static\threading-multi\libboost_thread-mgw45-mt-d-1_53.a...
gcc.archive bin.v2\libs\thread\build\gcc-mingw-4.5.3\release\address-model-64\link-static\threading-multi\libboost_thread-mgw45-mt-1_53.a
System cannot find the path specified.
System cannot find the path specified.
Я обнаружил, что он пытается использовать косые черты в стиле Win (/ vs \) и, возможно, из-за этого не работает.
Я не хочу использовать MSVC, так как я пытаюсь сделать свой код максимально переносимым, также важно, чтобы он был 64-битным.
Заранее спасибо.
Это похоже на отсутствующие файлы в вашей установке Cygwin. Попробуйте снова запустить установку и убедитесь, что все установлено для компилятора gcc (Cygwin, а не MinGW64).
Я успешно запустил bootstrap.sh, bjam прекрасно скомпилирован с компилятором gg Cygwin по умолчанию. После этого я ударил несколько ударов скорости, но с MinGW64 все отлично скомпилировалось. Я добавил исполняемый файл компилятора в tools \ build \ v2 \ user-config.jam следующим образом:
using gcc : 4.5.3 : x86_64-w64-mingw32-gcc.exe ;
Я получил следующие командные строки:
./b2 --toolset=gcc target-os=windows --build-dir=/cygdrive/c/whatever/boost_build variant=debug,release link=static runtime-link=static architecture=x86 address-model=64 threadapi=win32 --layout=tagged --without-mpi --stagedir=lib/win64gcc -j4 stage
… а потом я попробовал то же самое с link=shared runtime-link=shared
, но у меня было много ошибок компиляции, которые я еще не разобрался.
Некоторые ссылки, которые могут вам помочь:
РЕДАКТИРОВАТЬ:
В итоге я использовал MinGW64 TDM, который НАМНОГО проще, чем Cygwin MinGW64, поскольку это не кросс-компилятор. Просто установите MinGW64 TDM, добавьте MSYS, готово! Boost компилируется без проблем.
Других решений пока нет …