如何用bjam在cygwin windows7 i686-w64-mingw32-g ++中编译Boost(和link?)库

时间:2013-11-08 01:07:06

标签: c++ boost cygwin bjam poker

问题

编译提升以在使用jam的cygwin environement中使用它

Environement和我的技能

首先感谢您阅读我的消息并使用 windows 7 pentium i3 cygwin i686-w64-mingw32-g ++ 。我是初学者(10 000行c 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 的域中找到了参考程序的来源。他们建立了图书馆(我的梦想:o))en.wikipedia.org/wiki/PokerStove 来源在这里: https://github.com/andrewprock/pokerstove

我做了什么和错误

要拥有我在文档中提到的那些增强库: 我需要安装boost (标头不够,我需要库) 并安装boost(在扑克炉的文档中,他们说在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/ 我从sourceforge.net/projects/boost/files/boost-jam/3.1.18/boost-jam-3.1.18-1-ntx86.zip/stats下载boost-jam-3.1.17-1-ntx86.zip /地图 把它放在foder c:\ boost中     cd / cygdrive / c     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ésrefusé= acess在法国被拒绝^^ 我没有在教程的这一步中预期的dll和.lib

如果有人有解决方案或想法...谢谢:)如果需要,请随时询问更多信息或进行测试!如果主题不在正确的位置或不遵守标准,也可以随时告诉我。

Bests问候,

Barthelemy的

1 个答案:

答案 0 :(得分: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 using 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:\ Boost编译了 1 IB的 boost_regex-GCC-d-1_44.dll .A

只需从文件名中加粗部分即可编译/构建 你将拥有:

Will Success Spoil Rock Hunter?

这些信息来自法国文件: http://devtricks.wordpress.com/installer-boost-sous-windows-avec-mingw/