- Как скомпилировать библиотеки Boost (и ссылки?) В cygwin windows7 i686-w64-mingw32-g ++ с помощью bjam
- Решение
- Кросскомпиляция программ для Windows с использованием MinGW, Boost и Cmake в openSUSE
- Установка MinGW и Boost
- Кросскомпиляция с использованием Cmake
- Список используемых источников
- Как скомпилировать 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/.
После добавления репозитория необходимо установить следующие пакеты:
- 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
EvilsInterrupt |
| ||
Код |
@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 |
| ||
pattern`щик Профиль Репутация: 49 уже раз 20 обсуждалось. половину из них, я давал эту ссылку: http://forum.try-catch.ru/index.php?topic=286.0 модераторы, может закрепить инструкцию по сборке уже хоть раз? | |||
|
EvilsInterrupt |
| ||
Цитата(boostcoder @ 9.4.2012, 23:15 |
уже раз 20 обсуждалось. половину из них, я давал эту ссылку: http://forum.try-catch.ru/index.php?topic=286.0 |
В статье по этой ссылке не освящены вопросы:
1) Что если мне не нужна какая-либо библиотека? (опция —without)
2) Нет упоминания про 64-бита. Т.е. это аналогично 32-битному или что-то еще нужно?
boostcoder |
| |||
pattern`щик Профиль Репутация: 49
| ||||
|
EvilsInterrupt |
| ||
Цитата(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 |
| |||||||
pattern`щик Профиль Репутация: 49
если в системе только 64битный компилятор — по умолчанию соберется 64ех битная версия.
указывать не нужно. она по умолчанию.
он по дефолту.
я в той статье описал установку boost в каталоги MSVC. так что ничего прописывать/указывать не нужно. | ||||||||
|
Randajad |
| ||
|
EvilsInterrupt |
| ||
|
Randajad |
| ||
|
boostcoder |
| ||
pattern`щик Профиль Репутация: 49 еще один важный момент, который я уже наверное в 30ый раз объясняю: не все из подбиблиотек boost собираются в динамические/статические библиотеки. спасибо за внимание. Это сообщение отредактировал(а) boostcoder — 27.7.2012, 20:57 | |||
|
EvilsInterrupt |
| ||
|
boostcoder |
| ||
pattern`щик Профиль Репутация: 49 вечером выложу батник сюда. | |||
|
boostcoder |
| |||
pattern`щик Профиль Репутация: 49
rem check if mingw path correct bjam ^
rem check if mingw path correct bjam ^ | ||||
|
NEVOLSHEBNIK |
| ||
|
VSB |
| |||||
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn
[ Время генерации скрипта: 0.1583 ] [ Использовано запросов: 21 ] [ GZIP включён ] |