2 Stimmen

Wie sollte ich die Boost-Bibliothek in einem kleinen Projekt kompilieren?

Ich habe ein kleines Projekt, wo ich nur einen Teil der boost-Bibliothek, boost::regex im Besonderen benötigen. Dies ist, was ich bis jetzt getan habe:

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

In meinem Makefile Ich kompiliere alle boost-regex .cpp Dateien eine nach der anderen, wodurch .obj Dateien. Als Nächstes erstelle ich mein Projekt, indem ich kompiliere myprog.cpp zusammen mit all den .obj-Dateien aus /lib/boost/regex .

Die Frage ist, ob ich alles richtig mache? Die Größe meiner Ausgabedatei ist ziemlich groß (~3.5Mb), während mein Code extrem klein ist (10 Zeilen).

ps. Mein Compiler:

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

2voto

M. Williams Punkte 4895

Warum nicht bauen regex Bibliothek als statische Bibliothek und verwenden Sie ihre Funktionen in Ihrem Code, indem Sie #include <boost/regex.hpp> ?

Dies sollte keinen Einfluss auf die endgültige Größe Ihrer Anwendung haben, da der Compiler Nehmen Sie nur die Funktionen, die tatsächlich in Ihrer Anwendung verwendet werden .

Auch vorkompilierte Boost-Bibliotheken für verschiedene Plattformen sind im Internet zu finden, wenn man sie nicht selbst erstellen möchte. In diesem Fall müssen Sie nur die entsprechende Bibliothek nehmen und den entsprechenden Header einfügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X