40 lines
1.1 KiB
ReStructuredText
40 lines
1.1 KiB
ReStructuredText
|
.. Copyright David Abrahams 2006. Distributed under the Boost
|
||
|
.. Software License, Version 1.0. (See accompanying
|
||
|
.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||
|
|
||
|
Link Your Program to a Boost Library
|
||
|
====================================
|
||
|
|
||
|
To demonstrate linking with a Boost binary library, we'll use the
|
||
|
following simple program that extracts the subject lines from
|
||
|
emails. It uses the Boost.Regex_ library, which has a
|
||
|
separately-compiled binary component. ::
|
||
|
|
||
|
#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;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
There are two main challenges associated with linking:
|
||
|
|
||
|
1. Tool configuration, e.g. choosing command-line options or IDE
|
||
|
build settings.
|
||
|
|
||
|
2. Identifying the library binary, among all the build variants,
|
||
|
whose compile configuration is compatible with the rest of your
|
||
|
project.
|
||
|
|