Wie installiere ich Boost unter MacOS?


174

Wie installiere ich Boost unter MacOS? Im Moment kann ich bjam für den Mac nicht finden.


1
Sie können jederzeit versuchen, "Port-Suche <was auch immer>" - in Ihrem Fall Boost - wenn Sie sich nicht sicher sind.
Gustafbstrom

Ich habe sowohl Macports als auch Brew verwendet. Ich benutze sie bei Bedarf zusammen ( sudo port -t install X), aber ich bevorzuge in den meisten Fällen das Brauen gegenüber Macports.
Jacksonkr

Antworten:


152

Laden Sie MacPorts herunter und führen Sie den folgenden Befehl aus:

sudo port install boost 

2
Wenn Sie es vorziehen, Dinge durch root zu laufen sudo -s /opt/local/bin/port install boost
Pungs

2
Ich glaube nicht, dass Macports tot ist, da es aus der Mode gekommen ist.
Josef Salyer

3
Was ist mit zu tun brew install boost boost-python?
Ilciavo

Ich bevorzuge Macports gegenüber Brew, mit Brew kann jeder eine Scheißformel zusammenschlagen und viele Bibliotheken zerbrechen.
μολὼν.λαβέ

Wie wird dies über die Homebrew-Antwort akzeptiert? Das macht für mich keinen Sinn ...

261

Sie können die neueste Version von Boost mit Homebrew erhalten .

brew install boost.


8
Wie lange dauert es verschiedene Leute? Ich brauchte 48 Minuten mit 2 GB RAM, nicht sicher, welche CPU.
Luke Stanley

5
@LukeStanley AFAIK Homebrew verwendet heutzutage vorkompilierte Pakete ("Flaschen") für Boost, sodass die Installation in Sekundenschnelle erfolgt.
Philipp

8
Sekunden? Ich bin auf Mountain Lion, 2,9-GHz-Prozessor, 8 GB RAM und die Installation ist nach 15 Minuten immer noch nicht abgeschlossen.
user1255933

8

2
Hallo, schöne Antwort! Was ist, wenn ich boost@1.58 installieren möchte? Es gibt keine 1.58 mit Homebrew?
GoingMyWay

100

Holen Sie sich einfach die Quelle und kompilieren Sie Boost selbst; es ist sehr einfach geworden. Hier ist ein Beispiel für die aktuelle Version von Boost unter dem aktuellen MacOS zum Zeitpunkt dieses Schreibens:

  1. Laden Sie die .tar.gz von https://www.boost.org/users/download/#live herunter
  2. Auspacken und in das Verzeichnis gehen:

    tar -xzf boost_1_50_0.tar.gz
    cd boost_1_50_0

  3. Konfigurieren (und erstellen bjam):

    ./bootstrap.sh --prefix=/some/dir/you/would/like/to/prefix
  4. Bauen:

    ./b2
  5. Installieren:

    ./b2 install

Abhängig von dem Präfix, das Sie in Schritt 3 ausgewählt haben, müssen Sie möglicherweise Schritt 5 ausführen, wenn das Skript versucht, Dateien an einen geschützten Speicherort zu kopieren.


3
Beste Route, wenn Sie gegen boost_thread verlinken müssen. Die Standard-Brührezepte scheinen es nicht zu enthalten.
Wedge Martin

Wenn Sie andere ausführbare Dateien installieren möchten, die von Boost in der Standard-Laufzeitumgebung abhängen, verwenden Sie andere Antworten. In jedem anderen Fall verwenden Sie diese Antwort. Am besten wissen Sie, wann und wie Sie mit Boost kompilieren. Sie werden es so haben, wie es sein soll. Und am wichtigsten ist, dass Sie sich überlegen müssen, wo sich der Boost auf dem Continuous Integration (Build) -Server befindet und ob es auch einen Deployment-Server gibt.
wdavilaneto

Können Sie bitte Schritt 3 erklären? @ Snies
MAS

@MAS (Ich habe es heute nicht ausprobiert. Die Datei bootstrap.sh sollte jedoch mit der Datei tar.gz geliefert werden. Sie konfiguriert den Erstellungsprozess und erstellt das Build-Tool bjam. Das "Präfix" ist eine übliche Option für Build-Tools Präfix vor dem Installationspfad. Dies bedeutet, dass eine Datei, die in / bin installiert wird, stattdessen in / prefix / bin installiert wird, wenn der Installationsbefehl ausgegeben wird. Sie können dies verwenden, um Berechtigungsprobleme zu vermeiden. Zum Beispiel installiere ich optional Pakete, die ich für die Entwicklung in / home / snies / opt / bin anstelle von / bin verwende, damit ich keine Root-Berechtigungen benötige und mein System nicht durcheinander
bringe

6

Befolgen Sie einfach die Anweisungen in Abschnitt 5.1 des Handbuchs Erste Schritte für Unix-Varianten, es sei denn, Ihr Compiler unterscheidet sich von dem, der mit den Mac XCode Dev-Tools geliefert wird . Die Konfiguration und Erstellung der neuesten Quelle könnte nicht einfacher sein, und die Konfiguration dauerte etwa 1 Minute und die Kompilierung etwa 10 Minuten.


5

Fink scheint einen vollständigen Satz von Boost-Paketen zu haben ...

Wenn Fink installiert ist und läuft, tun Sie es einfach

fink install boost1.35.nopython

am Terminal und akzeptieren Sie die Abhängigkeiten, auf denen es besteht. Oder verwenden

fink list boost

um eine Liste der verschiedenen verfügbaren Pakete zu erhalten.


5

Installieren Sie beide separat mit Homebrew.


Brew Install Boost Brew Install Bjam


5

Installieren Sie Xcode aus dem Mac App Store. Verwenden Sie dann den Befehl:

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

Mit den oben genannten Optionen wird Homebrew installiert und Sie können Brew in Terminal verwenden

dann benutze einfach den Befehl:

brew install boost

das würde dann die Boost-Bibliotheken installieren <your macusername>/usr/local/Cellar/boost


4

Führen Sie Folgendes aus, um Probleme beim Kompilieren von Bibliotheken von Drittanbietern zu vermeiden, für die ein Boost auf Ihrem System installiert werden muss:

sudo port install boost +universal

4

Versuchen +universal

Eine Sache zu beachten: Damit das einen Unterschied machen , müssen Sie haben gebaut pythonmit +universal, wenn Sie nicht haben , oder du bist nicht sicher , dass Sie nur wieder aufbauen können python +universal. Dies gilt sowohl für Brau- als auch für Macports .

$ brew reinstall python
$ brew install boost

ODER

$ sudo port -f uninstall python
$ sudo port install python +universal
$ sudo port install boost +universal

3

Sie können bjam für OSX (oder ein anderes Betriebssystem) hier herunterladen


Kein Hinweis, was bjam ist und warum Sie glauben, dass Ihre Antwort das Problem im Zusammenhang mit dem Boost behebt.
Tõnu Samuel
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.