首页 文章

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

提问于
浏览
3

问题

编译boost以在带有jam的cygwin environement中使用它

Environement和我的技能

首先感谢您阅读我的消息并使用 windows 7 pentium i3 cygwin i686-w64-mingw32-g++ . 我是一个 beginner (10 000行cc基本代码,能够在文档中找到它很容易找到或者更常见于论坛 . 这里我在一周内失败了)我使用魔术线编译给朋友: 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 的域中找到了参考程序的来源 . 他们已经 Build libraries (我的梦想:o))en.wikipedia.org/wiki/PokerStove来源在这里:https://github.com/andrewprock/pokerstove

我做了什么和错误

为了拥有那些我在文档中提到的文件: I need to install boost ( Headers 不够,我需要库)并安装boost(在扑克炉文档中他们说在Windows中不容易,我相信:o) ) I am trying to use 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下载boost-jam-3.1.17-1-ntx86.zip -3.1.18-1-ntx86.zip/stats/map把它放在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

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

祝贺你,

1 回答

  • 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 l ib boost_regex-gcc-d-1_44.dll .a

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

    Will Success Spoil Rock Hunter?
    

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

相关问题