Как скомпилировать boost windows

Как скомпилировать библиотеки Boost (и ссылки?) В cygwin windows7 i686-w64-mingw32-g ++ с помощью bjam

увеличить компиляцию, чтобы использовать его в среде cygwin с джемом

Прежде всего, спасибо за чтение моего сообщения, и я использую windows 7 pentium i3 cygwin i686-w64-mingw32-g ++. Я начинающий (10 000 строк базового кода на c ++, который можно найти в документации, когда его легко найти или чаще на форуме. Здесь я терплю неудачу в течение недели) Я использую волшебную строку для компиляции, предоставленную другом: i686-w64 -mingw32-g ++ -g -static main.cpp -I / usr / i686-w64-mingw32 / include -L / usr / i686-w64-mingw32 / lib -ltesseract -llept -lgdi32 -lws2_32 я знаю только, что -l связывать.

Я работаю в проекте по покеру.
У меня есть много (порядка 10 ^ 7) вероятностей для вычисления, и это требует много оптимизаций. Я нашел источник справочных программ в этой области под названием PokerStove. У них есть строй библиотеки (моя мечта: о)) en.wikipedia.org/wiki/PokerStove
источник здесь:
https://github.com/andrewprock/pokerstove

Чтобы иметь эти библиотеки повышения, я использовал документацию, которая:
Мне нужно установить буст (заголовка не хватает, мне нужны библиотеки)
И установить boost (в документации по покеру сказали, что это не просто в windows, я верю: о))
Я пытаюсь использовать BJAM (информация с форума и официальная документация)
У меня есть источники загрузки boost_1_54_0 sourceforge.net/projects/boost/files/boost/1.54.0/
переименовал boost_1_54_0 в boost и поместил в c:
иметь все в папке в c: \ boost
тогда у меня есть следующий французский учебник http://devtricks.wordpress.com/installer-boost-sous-windows-avec-mingw/
у меня есть dowload boost-jam-3.1.17-1-ntx86.zip с sourceforge.net/projects/boost/files/boost-jam/3.1.18/boost-jam-3.1.18-1-ntx86.zip/stats /карта
положить его в фодер c: \ boost
cd / cygdrive / c
CD Boost
Этап bjam —build-type = complete —build-dir = «C: \ Boost \ build» —toolset = gcc —stagedir = «C: \ Boost» У меня было
bash: bjam: commande introuvable (неизвестная команда на французском), поэтому я добавляю «./» перед

Accés refusé = отказано в доступе на французском языке ^^
И у меня нет dll и .lib ожидаемых на этом этапе в учебнике

Если у кого-то есть решение или идеи … Спасибо 🙂 Не стесняйтесь спрашивать больше информации или тестировать при необходимости! Также не стесняйтесь сказать мне, если предмет не в нужном месте или не соответствует стандартам.

С наилучшими пожеланиями,

Решение

Было две проблемы
Один был связан с Windows 7
Была защита файлов

Чтобы удалить это: я сделал:

Вторая проблема была:
Он не работает со всеми комбинациями boost и bjam.

У меня в новой папке «build» 14 папок и 2613 файлов
с линией:

Для проверки вы можете создать файл example.cpp

Я скомпилировал в C: \ Boost
LИ.Б.boost_regex-GCC-d-1_44.dll.

Просто возьмите жирную часть из имени файла для компиляции / сборки
И у вас будет:

Кросскомпиляция программ для Windows с использованием MinGW, Boost и Cmake в openSUSE

Давным-давно в далекой-далекой галактике один программист заметил, что проект скомпилированный в VisualStudio 2005 выполняется в Windows ощутимо медленнее, чем при использовании GCC в Linux. И решил программист сравнить производительности проекта при использовании VisualStudio и GCC под Windows.

Проект является приложением, написанным на языках С и С++ с использованием библиотек Boost и системы сборки CMake.
Ниже рассказывается о создании окружения для сборки проекта на базе кросскомпилятора MinGW-w64, библиотек Boost и Cmake в openSUSE 11.3 x86.

Установка MinGW и Boost

Установка не должна представлять особой сложности. MinGW-w64 есть в репозиториях openSUSE. Для компиляции приложений для Windows x86 нужно добавить в систему репозиторий http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_11.3/, а для Windows x86-64 — http://download.opensuse.org/repositories/windows:/mingw:/win64/openSUSE_11.3/.

Читайте также:  Windows 98se системные требования

После добавления репозитория необходимо установить следующие пакеты:

  • mingw32-cross-binutils
  • mingw32-cross-cpp
  • mingw32-cross-gcc
  • mingw32-cross-gcc-c++
  • mingw32-headers
  • mingw32-libgcc
  • mingw32-libstdc++
  • mingw32-runtime
  • mingw32-filesystem
  • mingw32-boost-devel
  • mingw32-libboost_date_time
  • mingw32-libboost_filesystem
  • mingw32-libboost_graph
  • mingw32-libboost_iostreams
  • mingw32-libboost_math
  • mingw32-libboost_program_options
  • mingw32-libboost_random
  • mingw32-libboost_regex
  • mingw32-libboost_serialization
  • mingw32-libboost_signals
  • mingw32-libboost_system
  • mingw32-libboost_test
  • mingw32-libboost_thread
  • mingw32-libboost_wave
  • mingw32-libbz2
  • mingw32-libbz2-devel
  • mingw32-libexpat
  • mingw32-libexpat-devel
  • mingw32-icu
  • mingw32-libicu
  • mingw32-libicu-devel
  • mingw32-zlib
  • mingw32-zlib-devel

После установики нужно зайти под пользователем root и в файле /usr/i686-pc-mingw32/sys-root/mingw/include/mingw_inc/_socket_types.h (или /usr/x86_64-pc-mingw32/sys-root/mingw/include/mingw_inc/_socket_types.h , если вы установили MinGW для компиляции приложений под Windows x86-64) заменить

Это связано с тем, что в BSD-сокетах дискриптор сокета знаковый тип, а в Windows — беззнаковый. Если не сделать данную замену, то приложения использующие Boost.Asio, которая в Windows ожидает беззнаковый тип SOCKET не будут компилироваться. К негативным последствиям можно отнести потенциальную возможность неправильной работы приложений, которые расчитаны на то, что тип дескриптора сокета может быть только знаковым.

На этом установка окружения завершена.
DLL файлы для распространения приложения находятся в каталоге /usr/i686-pc-mingw32/sys-root/mingw/bin ( /usr/x86_64-pc-mingw32/sys-root/mingw/bin в случае Windows x86-64). Для того, чтобы определить, какие DLL-библиотеки использует скомпилированное приложение можно воспользоваться программой Dependency Walker, которая успешно работает под wine-1.3.10.

Кросскомпиляция с использованием Cmake

Для использования кросскомпиляции в Cmake необходимо создать файл настроек, путь к которому будет передаваться cmake через задаваемый в командной строке параметр CMAKE_TOOLCHAIN_FILE . В моем случае указание пути выглядело следующим образом:

Файл i686-pc-mingw32.cmake содержал следующие настрйки:

На этом установка завершена. Теперь можно компилировать Windows-приложения прямо из рабочего оружения на Linux.

Список используемых источников

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.

Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.

Чтобы исключить предвзятость при оценке, все публикации анонимны, псевдонимы показываются случайным образом.

Не надо пропускать:

  • рекламные и PR-публикации
  • вопросы и просьбы (для них есть Хабр Q&A);
  • вакансии (используйте Хабр Карьеру)
  • статьи, ранее опубликованные на других сайтах;
  • статьи без правильно расставленных знаков препинания, со смайликами, с обилием восклицательных знаков, неоправданным выделением слов и предложений и другим неуместным форматированием текста;
  • жалобы на компании и предоставляемые услуги;
  • низкокачественные переводы;
  • куски программного кода без пояснений;
  • односложные статьи;
  • статьи, слабо относящиеся к или не относящиеся к ней вовсе.

Как скомпилировать boost windows

Executables research

Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9

Компилирую этот Boost впервые и поэтому зарылся в документацию так, что аж не видно меня.
Решил упростить жизнь на будущее и написал батник. Вот его содержимое:

EvilsInterrupt
Дата 9.4.2012, 21:35 (ссылка) | (нет голосов) Загрузка .
Код
@rem Win32
.\b2.exe —without-wave —without-python —without-graph_parallel —without-graph stage —stagedir=stage32 toolset=msvc variant=debug link=static threading=multi runtime-link=static
.\b2.exe —without-wave —without-python —without-graph_parallel —without-graph stage —stagedir=stage32 toolset=msvc variant=release link=static threading=multi runtime-link=static

@rem x64
.\b2.exe —without-wave —without-python —without-graph_parallel —without-graph stage —stagedir=stage64 toolset=msvc variant=debug link=static threading=multi runtime-link=static address-model=64
.\b2.exe —without-wave —without-python —without-graph_parallel —without-graph stage —stagedir=stage64 toolset=msvc variant=release link=static threading=multi runtime-link=static address-model=64

можно ли его как-нить упростить?

boostcoder
Дата 9.4.2012, 22:15 (ссылка) | (голосов:1) Загрузка .

pattern`щик

Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110

уже раз 20 обсуждалось. половину из них, я давал эту ссылку: http://forum.try-catch.ru/index.php?topic=286.0

модераторы, может закрепить инструкцию по сборке уже хоть раз?

Executables research

Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9

EvilsInterrupt
Дата 20.4.2012, 15:16 (ссылка) | (нет голосов) Загрузка .
Цитата(boostcoder @ 9.4.2012, 23:15 )
уже раз 20 обсуждалось. половину из них, я давал эту ссылку: http://forum.try-catch.ru/index.php?topic=286.0

В статье по этой ссылке не освящены вопросы:
1) Что если мне не нужна какая-либо библиотека? (опция —without)
2) Нет упоминания про 64-бита. Т.е. это аналогично 32-битному или что-то еще нужно?

boostcoder
Дата 20.4.2012, 16:25 (ссылка) | (нет голосов) Загрузка .

pattern`щик

Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110

Цитата(EvilsInterrupt @ 20.4.2012, 15:16 )
В статье по этой ссылке не освящены вопросы
Цитата
Описание ключей для bjam Вы можете найти тут.

Executables research

Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9

EvilsInterrupt
Дата 21.4.2012, 21:55 (ссылка) | (нет голосов) Загрузка .
Цитата(boostcoder @ 20.4.2012, 17:25 )
в той статье, есть волшебная ссылка на доку по boost.build:

Основная цель того что Вы написали статью про boost?
На мой взгляд Вы стремились облегчить порог вхождения в использование boost разве не так? Думаю, что да. Как вывод так и следует продолжать. Если что-то кому-то непонятно, то имеет смысл подумать «может действительно это раскрыть. Потому что существует вероятность что еще кому-то не понятно и это следует раскрыть!

У меня возникло достаточно много вопросов из-за которых провел больше дня в документации, потому что у меня с буржуйским на Вы, я конечно над исправлением работаю, но решать задачи надо не потом, когда изучу, а сейчас!

Вот некоторый список:

1) Как скомпилировать под 64-бита?
2) Достаточно ли для того чтобы ответить на п.1. применить «address-model=64»?
3) Может еще надо архитектуру x86 указывать или она по умолчанию?
4) Обязательно ли указывать «toolset=msvc» может он по дефолту?

Еще:
Попутно пришлось загуглить как в MSVC 2010 студии прописывать буст в глобальные инклуды и либы, ведь это теперь отличается от того что было в 2008. Этот нюанс тоже можно отметить хотя бы ссылкой «Для 2010 решение искать тут».

Если чтото писать не хочется, то нужно ввести ограничения статьи словами «Вам нужно уметь. «

boostcoder
Дата 22.4.2012, 17:00 (ссылка) | (нет голосов) Загрузка .

pattern`щик

Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110

Цитата(EvilsInterrupt @ 21.4.2012, 21:55 )
1) Как скомпилировать под 64-бита?
2) Достаточно ли для того чтобы ответить на п.1. применить «address-model=64»?

если в системе только 64битный компилятор — по умолчанию соберется 64ех битная версия.

Цитата(EvilsInterrupt @ 21.4.2012, 21:55 )
3) Может еще надо архитектуру x86 указывать или она по умолчанию?

указывать не нужно. она по умолчанию.

Цитата(EvilsInterrupt @ 21.4.2012, 21:55 )
4) Обязательно ли указывать «toolset=msvc» может он по дефолту?

он по дефолту.
если используете другой компилятор — нужно указывать.

Цитата(EvilsInterrupt @ 21.4.2012, 21:55 )
Попутно пришлось загуглить как в MSVC 2010 студии прописывать буст в глобальные инклуды и либы, ведь это теперь отличается от того что было в 2008.

я в той статье описал установку boost в каталоги MSVC. так что ничего прописывать/указывать не нужно.

Опытный

Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8

Как сложно. У меня такой батник:

cd /D c:\boost
bootstrap
bjam toolset=msvc variant=release link=static runtime-link=static optimization=speed inlining=full cxxflags=»/GL» linkflags=»/LTCG» filesystem system program_options signals date_time

Собирает только необходимые либы + LTCG.

Randajad
Дата 22.4.2012, 19:18 (ссылка) | (нет голосов) Загрузка .

Executables research

Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9

EvilsInterrupt
Дата 22.4.2012, 21:46 (ссылка) | (нет голосов) Загрузка .

Опытный

Профиль
Группа: Участник
Сообщений: 295
Регистрация: 15.3.2012

Репутация: 8
Всего: 8

Ага, variant=debug указать.

Randajad
Дата 23.4.2012, 08:51 (ссылка) | (нет голосов) Загрузка .
boostcoder
Дата 27.7.2012, 20:54 (ссылка) | (нет голосов) Загрузка .

pattern`щик

Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110

еще один важный момент, который я уже наверное в 30ый раз объясняю: не все из подбиблиотек boost собираются в динамические/статические библиотеки.
дело в том, что большая часть этих подбиблиотек — header-only библиотеки.
не пытайтесь собрать их как динамические/статические библиотеки! не пытайтесь заставить bjam сделать это!
понять, какие библиотеки являются header-only, вы можете перейдя по ссылке документации конкретной версии(к примеру: http://www.boost.org/doc/libs/1_50_0/), и кликнув по табличке в самом начале страницы по категории Header Only Libraries.

спасибо за внимание.

Это сообщение отредактировал(а) boostcoder — 27.7.2012, 20:57

Executables research

Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: 2
Всего: 9

EvilsInterrupt
Дата 24.1.2013, 11:23 (ссылка) | (нет голосов) Загрузка .
boostcoder
Дата 24.1.2013, 12:07 (ссылка) | (нет голосов) Загрузка .

pattern`щик

Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110

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

boostcoder
Дата 25.1.2013, 21:44 (ссылка) | (нет голосов) Загрузка .

pattern`щик

Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110

Цитата
@echo off

rem check if mingw path correct
if not exist %MINGWDIR%/bin/mingw32-make.exe (
echo bad mingw directory!
exit /b 1
) else (
echo mingw directory ok.
)

bjam ^
-j4 ^
toolset=gcc ^
variant=release ^
threading=multi ^
link=static ^
runtime-link=static ^
—without-mpi ^
—without-math ^
—without-random ^
—without-graph ^
—without-graph_parallel ^
—without-python ^
—without-wave ^
—layout=system ^
—libdir=%MINGWDIR%/i686-w64-mingw32/lib ^
—includedir=%MINGWDIR%/i686-w64-mingw32/include ^
install

Цитата
@echo off

rem check if mingw path correct
if not exist %MINGWDIR%/bin/mingw32-make.exe (
echo bad mingw directory!
exit /b 1
) else (
echo mingw directory ok.
)

bjam ^
-j4 ^
toolset=gcc ^
variant=release ^
threading=multi ^
link=static ^
runtime-link=static ^
—without-mpi ^
—without-math ^
—without-random ^
—without-graph ^
—without-graph_parallel ^
—without-python ^
—without-wave ^
—layout=system ^
—libdir=%MINGWDIR%/x86_64-w64-mingw32/lib ^
—includedir=%MINGWDIR%/x86_64-w64-mingw32/include ^
install

Профиль
Группа: Участник
Сообщений: 4
Регистрация: 13.7.2007

Репутация: нет
Всего: нет

Скачал с оф. сайта boost_1_53_0.tar.bz2. При сборке bjam вылезает ошибка
***** ПРЕВЫШЕНИЕ РАЗМЕРОВ СТЕКА *****
***** ПРИ ВЫПОЛНЕНИИ РЕКУРСИИ В ПАКЕТНОМ РЕЖИМЕ *****
Глубина рекурсии=1240, Использование стека 90проц.
***** ПАКЕТНАЯ ОБРАБОТКА ПРЕРВАНА *****

Оказалось, что концы строк build.bat в юниксовом формате(lf), котоый мой xp не понимает.
Так что если качать, то лучше 7z архив, или придется изменять в файле build.bat формат конца строк.

Это сообщение отредактировал(а) NEVOLSHEBNIK — 25.2.2013, 11:17

NEVOLSHEBNIK
Дата 25.2.2013, 11:09 (ссылка) | (нет голосов) Загрузка .

Шустрый

Профиль
Группа: Участник
Сообщений: 113
Регистрация: 23.8.2007

Репутация: 1
Всего: 2

VSB
Дата 4.3.2013, 00:05 (ссылка) | (нет голосов) Загрузка .
  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ 🙂
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе — для этого существует «Центр Помощи».
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »

[ Время генерации скрипта: 0.1583 ] [ Использовано запросов: 21 ] [ GZIP включён ]

Читайте также:  This will end your windows session
Оцените статью