undefined reference to `std::__cxx11::basic_string im Boost auf Travis CI

Ich versuche zu bekommen eine C+++ Projekt, die verwendet Boost auf GitHub, um ordnungsgemäß zu kompilieren, die auf Travis CI.

Habe zuerst die Pakete und PPA unter ubuntu, aber Sie waren zu alt, (ich brauche mindestens Boost-1.61).

Ich es geschafft habe nur wenn ich die kompilierte Boost auf Travis CI(download, kompilieren), aber, leider, die compile-Zeit ist groß (11-18 Minuten) und die log-Datei ist riesig.

Denken, wie man über diese Themen, ich thinked über die Erhebung von boost auf meinem Rechner, zippen, hochladen auf einigen web-server und nur herunterladen und kopieren auf /usr/local/[include/lib] die entsprechenden Dateien.

Hier ist der compiler ich verwendete auf meinem Rechner. Ich kompiliert boost mit

./bootstrap.sh --prefix=/home/andrei/boostabc
/usr/bin/time ./b2 install link=static

Hier ist die travis-Datei (und-Depot). In den Kommentaren ist die Art und Weise habe ich es mit kompilieren von boost.

Das problem ist, dass ich eine Menge Fehler:

/usr/local/lib/libboost_filesystem.a(operations.o): In function `(anonymous namespace)::dir_itr_first(void*&, void*&, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, boost::filesystem::file_status&, boost::filesystem::file_status&) [clone .isra.46] [clone .constprop.56]':
operations.cpp:(.text+0xa8): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'

Googelte ich diese Fehler und ich fand es vielleicht ein misconfig über einige C++11 ABI und ein makro. Ich habe nicht sehr gut verstehen, die Erklärung und ich habe keine Ahnung, wie es funktioniert.

Ich wäre Ihnen dankbar, wenn Sie könnten mich in die richtige Richtung, dies zu lösen.

Verwenden Travis CI für boost als gut, aber machen es zu einem separaten Projekt, das Holen der Quellen, bauen, boost -, Paket -, und upload-repository (z.B. "einige " webserver"). Ich benutze einen ähnlichen Prozeß in mein CI-system, außer ich benutze ein Artefakt-repository-und dependency-management zu binden Dinge zusammen. Würde verrückt werden, wenn jeder commit auslöste baut alle Abhängigkeiten verwendet.

InformationsquelleAutor Andrei Damian | 2016-11-20

Schreibe einen Kommentar