Как мне собрать библиотеку boost в небольшом проекте? - PullRequest
2 голосов
/ 26 мая 2010

У меня есть небольшой проект, где мне нужна только часть библиотеки boost, в частности boost :: regex. Это то, что я сделал до сих пор:

/include
  /boost
    /regex
    /math
    .. 189 dirs, files, etc.
/lib
  /boost-regex
    c_regex_traits.cpp
    cpp_regex_traits.cpp
    .. ~20 .cpp files
myprog.cpp

В моем Makefile я компилирую все файлы boost-regex .cpp один за другим, создавая .obj файлы. Затем я строю свой проект путем компиляции myprog.cpp вместе со всеми этими файлами .obj из /lib/boost/regex.

Вопрос в том, правильно ли я все делаю? Размер моего выходного файла довольно большой (~ 3,5 МБ), а мой код очень маленький (10 строк).

пс. Мой компилятор:

$ c++ —version
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5659)

1 Ответ

2 голосов
/ 26 мая 2010

Почему бы не собрать regex библиотеку в качестве статической библиотеки и использовать ее функции в своем коде, написав #include <boost/regex.hpp>?

Это не должно влиять на окончательный размер вашего приложения, потому что компилятор будет принимать только те функции, которые фактически используются в вашем приложении .

Кроме того, предварительно скомпилированные библиотеки наддува для разных платформ можно найти в Интернете, если вы не хотите создавать их самостоятельно. В этом случае вам нужно просто взять соответствующую библиотеку и включить соответствующий заголовок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...