Ändern Sie die Kompilierungsflags für Homebrew

610
François Beaune

Wir bauen eine große C ++ - Anwendung auf OS X Yosemite 10.10. Diese Anwendung basiert auf einer Reihe von Bibliotheken von Drittanbietern, die wir vor dem Erstellen unserer Anwendung mithilfe von Homebrew installieren. Unser Release-Skript greift alle Abhängigkeiten auf und fügt sie in das endgültige Paket ein.

Einige unserer Benutzer berichteten, dass unsere Anwendung auf ihrem Mac nicht funktioniert. Zum Beispiel wird ein Benutzer, der macOS 10.12.6 auf einem Ende des 2012er 27-Zoll-iMac ausführt llegal instruction: 4(alle Details hier ).

Es scheint, dass der Absturz in einer von Drittanbietern abhängigen Abhängigkeit, OpenImageIO, auftritt, die mit folgenden Befehlen auf der Build-Maschine installiert wurde:

brew tap homebrew/science brew install openimageio 

brew info openimageio berichtet, dass es tatsächlich aus der Quelle erstellt wurde:

/usr/local/Cellar/openimageio/1.7.17_1 (66 files, 16.0MB) * Built from source on 2017-11-27 at 19:15:19 

Ich vermute, dass Homebrew beim Kompilieren auf der Build-Maschine erweiterte x86-Befehlssätze aktiviert.

Hier ist die Homebrew-Formel für OpenImageIO:
https://github.com/Homebrew/homebrew-science/blob/master/openimageio.rb

Gibt es eine Möglichkeit herauszufinden, welche Flags oder welche Befehlszeilen Homebrew verwendet?

Gibt es alternativ eine Möglichkeit, die Standard-Flags von clang unter macOS global zu setzen?

6

0 Antworten auf die Frage