Как скомпилировать библиотеки 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) вероятностей для вычисления, и это требует много оптимизаций. Я нашел источник справочных программ в этой области под названием Покерстово. У них есть сборочные библиотеки (моя мечта: о)) en.wikipedia.org/wiki/PokerStove источник здесь: https://github.com/andrewprock/pokerstove
Что я сделал и ошибки
Чтобы иметь эти библиотеки буста, я указал в документации, что: мне нужно установить буст (заголовка недостаточно, мне нужны библиотеки) и установить буст (в документации по покеру они сказали, что это нелегко в Windows, я полагаю это:o)) Я пытаюсь использовать bjam (информация получена из форума и официальной документации). У меня есть источники загрузки boost_1_54_0 sourceforge.net/projects/boost/files/boost/1.54.0/ переименован в boost_1_54_0 для повышения и вставки в него 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/map поместите его в фодер c:\boost cd /cygdrive/ cd boost bjam stage --build-type=complete --build-dir="C:\Boost\build" --toolset=gcc --stagedir="C:\Boost" у меня было bash: bjam: commande introuvable (неизвестная команда на французском языке), поэтому я добавляю "./" перед
и я наконец-то
$ ./bjam stage --build-type=complete --build-dir="C:\Boost\build" --toolset=gcc
--stagedir="C:\Boost"
warning: mismatched versions of Boost.Build engine and core
warning: Boost.Build engine (C:\boost\bjam.exe) is 03.1.17
warning: Boost.Build core (at C:/boost/tools/build/v2) is 2011.12-svn
Accès refusé.
Accès refusé.
Accès refusé.
Accès refusé.
C:/boost/tools/build/v2/util\path.jam:458: in makedirs
rule MAKEDIR unknown in module path.
C:/boost/tools/build/v2/util\path.jam:456: in makedirs
C:/boost/tools/build/v2/util\path.jam:456: in path.makedirs
C:/boost/tools/build/v2/build\configure.jam:233: in configure.set-log-file
C:/boost/tools/build/v2\build-system.jam:695: in load
C:\boost\tools\build\v2/kernel\modules.jam:289: in import
C:\boost\tools\build\v2\kernel\bootstrap.jam:139: in boost-build
C:\boost\boost-build.jam:17: in module scope
Accés отказался = acess отказался на французском языке ^^ И я не ожидаю dll и.lib на этом этапе в учебнике
Если у кого-то есть решение или идеи... Спасибо:) Не стесняйтесь спрашивать больше информации или тестировать при необходимости! Также не стесняйтесь сказать мне, если предмет не в нужном месте или не соответствует стандартам.
С наилучшими пожеланиями,
Бартелеми
1 ответ
Было две проблемы Одна была связана с windows 7 Была защита файлов
Чтобы удалить это: я сделал:
$ chmod -R a+r bin
$ chmod -R a+x bin
Это исправило
"Accès refusé".
Вторая проблема была: это не работает со всеми комбинациями boost и bjam.
bjam (3.1.18-1-ntx86) с Boost 1.44 работает. Build Boost 1.45 с использованием MinGW
У меня в новой папке "build" 14 папок и 2613 файлов со строкой:
bjam install --prefix="C:\MinGW" --build-type=complete --build-dir="C:\Boost\build" --toolset=gcc --layout=system
Для проверки вы можете создать файл example.cpp
#include <boost/regex.hpp>
#include <iostream>
#include <string>
int main()
{
std::string line;
boost::regex pat( "^Subject: (Re: |Aw: )*(.*)" );
while (std::cin)
{
std::getline(std::cin, line);
boost::smatch matches;
if (boost::regex_match(line, matches, pat))
std::cout << matches[2] << std::endl;
}
}
и файл
mail.txt
To: George Shmidlap
From: Rita Marlowe
Subject: Will Success Spoil Rock Hunter?
---
See subject.
затем сделайте:
$ g++ exemple.cpp -o exemple.exe -I"C:\Boost" -L"C:\Boost\lib" -lboost_regex-gcc-d-1_44.dll
exemple.exe < mail.txt
Я скомпилировал в C: \ Boostl ibboost_regex-gcc-d-1_44.dll.a
Просто возьмите жирную часть из имени файла для компиляции / сборки И у вас будет:
Will Success Spoil Rock Hunter?
Эта информация взята из французского документа: http://devtricks.wordpress.com/installer-boost-sous-windows-avec-mingw/