2016-05-01 10 views
0

Ich habe eine Neuinstallation von OS X 10.11.4, dass ich sofort die Xcode Toolchain auf, dann Homebrew, dann Boost 1.60 installiert. Um zu testen, dass alles gut gegangen ist, habe ich den folgenden Code auf meinen Desktop geschrieben.Schwierigkeit, Boost 1.60 unter OS X nach der Installation über Homebrew zu verbinden

#include <iostream> 

#include <boost/filesystem.hpp> 

int main() { 
    boost::filesystem::path new_directory("hello"); 
    boost::filesystem::create_directory(new_directory); 
} 

Ich habe dann versucht, es zu kompilieren, wie ich es normalerweise mit dem folgenden Befehl getan habe.

$ clang++ test.cpp -o test -lboost_system -lboost_filesystem 

Ich habe den folgenden Fehler erhalten.

test.cpp:3:10: fatal error: 'boost/filesystem.hpp' file not found 
#include <boost/filesystem.hpp> 

So habe ich schon immer Projekte zusammengestellt, die Boost in der Vergangenheit verlinken. Ich nehme an, dass ich wahrscheinlich einen Schritt auf dem Weg vergessen habe, der es erlaubt, einen bestimmten Pfad zu durchsuchen, um die Bibliotheken dynamisch zu verknüpfen. Was muss ich ändern, damit dieser Kompilierungsbefehl funktioniert?

+0

prüfen, ob die Systempfade in der Xcode-Projekt enthalten den Pfad/usr/local/include –

+0

yup, ich wusste, dass ich das schon einmal beantwortet habe: http://stackoverflow.com/questions/27470462/how-do-i-add-the-boost-library-to-my-c-program-in- xcode-6-0 –

+0

Ich verwende nicht Xcode (und ich mache fast nie); Ich kompiliere eine einzelne Datei von Terminal. Wenn ich das innerhalb von Xcode mache, wird es meine Einstellungen für jeden Clang-Kompiliervorgang dauerhaft ändern? –

Antwort

0

Für mich Schub wurde in ein Unterverzeichnis von meinem Home-Verzeichnis kompiliert und installiert, so dass Sie die Pfade als geeignet für Ihre Homebrew Installation ändern müssen:

flags="-std=c++1z -I/${HOME}/local/include -L${HOME}/local/lib -lboost_filesystem -lboost_system" 
c++ ${flags} -o jared jared.cpp 
0

zuerst die Lage des Auftrieb erhalten indem Sie folgendermaßen vorgehen:

brew info boost

enter image description here

Aus dem Bild oben, Sie können sehen, dass meine Lage

/usr/local/Cellar/boost/1.66.0

Dann zu kompilieren, verwenden Sie die folgenden Schritte aus:

c++ -I /usr/local/Cellar/boost/1.66.0 main.cpp -o boost