使用子模块应用程序编译Modular Boost 1.55.0

时间:2014-07-01 07:23:07

标签: c++ git boost g++ boost-asio

我已经将modulare boost git存储库(在此处描述:description,但不仅仅是标题)克隆到我的Windows机器上(Windows 7 64位,使用MinGW g ++ 4.4.1,但也尝试过版本) 4.8.1)。我使用了以下命令:

git config --global core.autocrlf true
git clone --recursive git@github.com:boostorg/boost.git modular-boost > clone.log
cd modular-boost

在构建它之前,我将子模块boost.application添加到libs / application:

git submodule add https://github.com/retf/Boost.Application.git libs/application

插入子模块后,构建它:

.\bootstrap gcc
.\b2 --layout=tagged link=shared variant=debug threading=multi toolset=gcc
  1. 有些库没有编译(比如boost log)。我在这里想念一下吗?
  2. 我尝试使用现有的编译库(主要是我使用的是System,Thread,Prg_Exec_Monitor,Unit Tests和Program Options),但我总是在boost/asio/detail/impl/socket_ops.ipp中出错:

    error: 'SO_UPDATE_CONNECT_CONTEXT' was not declared in this scope
    

    以下是一个示例代码,发生此错误:

    #include <iostream>
    #include <boost/application.hpp>
    
    using namespace std;
    
    int main()
    {
        cout << "SO_Question_Test" << endl;
        return 0;
    }
    

    _WIN32_WINNT设置为0x0601(Windows 7)。

1 个答案:

答案 0 :(得分:1)

我为MinGW添加了部分支持。请再次下载最新版本(0.4.9)并检查:

在MinGW步骤上构建Boost.Application:

1)下载MinGW

2)安装它,并添加&#39; C:/ MinGW / bin&#39;到你的路径。

3)安装gcc     - &GT;打开控制台窗口并输入:

  

mingw-get install gcc

4)为MinGW构建Boost

从您的boost_X_XX_X目录转到

\工具\建立\ V2

在我的情况下:C:\ boost_1_54_0 \ tools \ build \ v2

并输入:

  

bootstrap.bat mingw

     

cd C:\ boost_1_54_0 \ tools \ build \ v2

     

bootstrap.bat mingw

返回您的boost_X_XX_X目录并输入:

  

bjam toolset = gcc

5)安装Boost.TypeIndex 4.0(对于boost&lt; 1.56)

如果您正在使用boost&lt; 1.56你需要安装Boost.TypeIndex 4.0

5.1)下载

5.2)将以下内容复制:c:\ type_index \ include \ boost \到C:\ boost_1_54_0 \ boost \

6)安装Boost.Application 0.4.9

6.1)下载

6.2)将以下内容复制:c:\ application \ include \ boost \到C:\ boost_1_54_0 \ boost \

7)安装,编译和运行&#34;测试&#34; **

7.1)创建一个名为&#34; application&#34;的新文件夹。在C:\ boost_1_54_0 \ libs \

7.2)复制文件夹:c:\ application \ test to C:\ boost_1_54_0 \ libs \ appliacation

C:\ *应用

7.3)编译并运行:

  

cd C:\ boost_1_54_0 \ libs \ application \ test

     

bjam toolset = gcc define = BOOST_APPLICATION_FEATURE_NS_SELECT_BOOST

使用BOOST_APPLICATION_FEATURE_NS_SELECT_BOOST强制使用boost(boost :: shared_ptr,boost :: unordered_map等)作为默认值

8)安装,编译和运行&#34;示例&#34;

8.1)创建一个名为&#34; application&#34;的新文件夹。在C:\ boost_1_54_0 \ libs \

8.2)将文件夹:c:\ application \ example复制到C:\ boost_1_54_0 \ libs \ application

8.3)编译并运行:

  

cd C:\ boost_1_54_0 \ libs \ application \ example

     

bjam toolset = gcc

这些示例定义了&#; BOOST_APPLICATION_FEATURE_NS_SELECT_BOOST&#39;直接代码

[*] c:\ application =从github下载

[**]&#34; bjam&#34;需要在系统中可用

文章:https://github.com/retf/Boost.Application/wiki/Boost.Application-on-MinGW

Letme知道是否有效!