2015-10-02 15 views
17

Ich habe gerade von Yosemite zu El Capitan aktualisiert und es hat eines meiner C++ - Programme gebrochen, das auf Boost basierte. Immer, wenn ich zu kompilieren versuchen, erhalte ich diese Fehler:Boost funktioniert nicht mehr mit Homebrew auf Mac El Capitan

fatal error: 'boost/timer/timer.hpp' file not found 
#include <boost/timer/timer.hpp> 

fatal error: 'boost/program_options.hpp' file not found 
#include "boost/program_options.hpp" 

Ich habe es mit den richtigen Flags kompilieren und es funktionierte perfekt vor:

-lboost_timer-mt \ 
-lboost_program_options-mt \ 

Ich habe die haus brauen Anweisungen befolgt zu chown/usr/local, brauen brauen brauen und brauen update, sogar brauen neu installieren boost. Ich habe auch überprüft und timer.hpp ist in/usr/local/include/boost vorhanden.

aktualisieren Ran: Klirren ++ -E -x C++ - -v </dev/null

Apple LLVM version 7.0.0 (clang-700.0.72) Target: x86_64-apple-darwin15.0.0 Thread model: posix "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang" 
    -cc1 -triple x86_64-apple-macosx10.11.0 -Wdeprecated-objc-isa-usage -Werror=deprecated-objc-isa-usage -E -disable-free -disable-llvm-verifier -main-file-name - -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 253.2 -v -dwarf-column-info -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0 
    -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk 
    -stdlib=libc++ -fdeprecated-macro -fdebug-compilation-dir /usr/local/lib -ferror-limit 19 -fmessage-length 272 -stack-protector 1 -mstackrealign -fblocks -fobjc-runtime=macosx-10.11.0 
    -fencode-extended-block-signature -fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -fcolor-diagnostics -o - -x c++ - clang -cc1 version 7.0.0 based upon LLVM 3.7.0svn default target x86_64-apple-darwin15.0.0 ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/c++/v1" ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/local/include" ignoring nonexistent directory "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/Library/Frameworks" 
    #include "..." search starts here: 
    #include <...> search starts here: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/7.0.0/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks (framework directory) End of search list. 
    # 1 "<stdin>" 
    # 1 "<built-in>" 1 
    # 1 "<built-in>" 3 
    # 332 "<built-in>" 3 
    # 1 "<command line>" 1 
    # 1 "<built-in>" 2 
    # 1 "<stdin>" 2 
+0

Verwenden Sie den Compiler, der mit Xcode geliefert wird oder etwas, das mit Homebrew installiert ist? Hast du sichergestellt, dass es derselbe Compiler ist, den du vor dem Update benutzt hast? – user657267

+0

Ich kompiliere mit dem Clang-Compiler in/usr/bin/g ++, was ich vorher benutzt habe. –

+0

Überprüfen Sie die Include-Pfade mit 'clang ++ -E-x C++ - -v user657267

Antwort

20

Sie sollten die Xcode Command Line Tools mit xcode-select --install installieren Sie eine Version zu erhalten von clang, das/usr/local standardmäßig sucht. Andernfalls verwenden Sie die von Xcode bereitgestellten Versionen, die nur die OS X SDK-Pfade durchsuchen. (/ usr/bin/gcc und/usr/bin/g ++ beide rufen clang auf und sind keine Versionen von gcc.)

+1

Ja, ich habe gehört, dass Leute berichten, dass ein Upgrade auf El Capitan ihre Installation der Befehlszeilen-Tools entfernt hat, sodass Sie zu diesem Zeitpunkt nur die vollständigen Xcode-Versionen hätten. –

1

Ich hatte das gleiche Problem, wenn ich nach El Capitan aufgewertet. Ich löste dieses Problem, Boost mit brew neu zu installieren.

Wenn Sie nicht brauen installiert haben, können Sie es installieren mit

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 

Dann installieren boost

brew install boost 
+0

Ich habe eine Neuinstallation von Boost ausgeführt, aber sie konnte es aus irgendeinem Grund nicht finden, da Clong nicht mehr in meinen Verzeichnissen/usr/include und/usr/libs gesucht hat, wenn ich kompiliert habe. –

Verwandte Themen