Ich habe Boost mit Macports installiert. Die Dateien scheinen sich in / opt / local / include / boost /
zu befindenMein Makefile funktioniert nicht mehr und ich bekomme den folgenden Fehler
%Vor%In der Schule bestand die Lösung darin, -lboost_system als Argument für g ++ zu verwenden, aber jetzt, da ich das Projekt zu meinem Mac gebracht habe, funktioniert das nicht. Ich denke, das liegt hauptsächlich an der Tatsache, dass die Boost-Dateien in der Schule bei usr / local / lib (oder irgendwo anders) waren.
Wenn ich das Argument -lboost_system hinzufüge, erhalte ich die folgende Nachricht:
%Vor%Ich habe ein paar Variationen mit -L und -l ausprobiert, aber ich kann keine passende Kombination finden. In der Schule muss ich auch nicht -L benutzen. Ich habe ein paar andere Posts über ähnliche Probleme gelesen, aber sie haben es behoben, indem ich -l Flags hinzugefügt habe, die für mich nicht funktionieren.
Hilfe! Danke!
Sie vermissen ein -L/opt/local/lib
. Du solltest in deinem Makefile LDFLAGS
einstellen können:
Dies setzt voraus, dass die Boost-Bibliotheken natürlich in /opt/local/lib
sind.
Wenn Sie nicht die üblichen Variablen CXXFLAGS
und LDFLAGS
in Ihrem Makefile verwenden, fügen Sie die -L/opt/local/lib
direkt in Ihrer letzten Regel hinzu:
Das -I
teilt dem Compiler nur mit, wo Header-Dateien sind, der Linker benötigt Bibliotheken und Sie verwenden -L
dafür.
Sie könnten versuchen, es in Ihrem System so zu suchen:
%Vor%Wenn die Bibliothek installiert ist, sollte sie etwa so aussehen:
%Vor%oder es wird nur eine leere Zeile angezeigt
In Ihrem Fall scheint Boost an einem anderen Ort installiert zu sein, daher die Notwendigkeit zusätzlicher Linker-Informationen, daher die Notwendigkeit für den -L-Schalter, wenn Sie es in / usr / lib haben, da ich dann keine Notwendigkeit habe Für weitere Informationen in Makefile
Tags und Links c++ boost boost-asio makefile