Как скомпилировать библиотеки 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/

Другие вопросы по тегам