glui.h nicht gefunden

Ich habe Glui mit Homebrew installiert

$ brew info glui
glui: stable 2.36
C++ user interface library
http://glui.sourceforge.net/
 /usr/local/Cellar/glui/2.36 (3 files, 594K) *
  Built from source
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/glui.rb

Wenn ich jedoch versuche, den Header in C++ mit zu verwenden <glui.h>, <GL/glui.h>oder <GLUI/glui.h>es gibt einen ... not foundFehler. Wie soll ich Glui installieren, damit es von C++ gefunden werden kann?

Es ist nicht klar, ob dies hier oder auf Stack Overflow geeignet wäre. Wenn Sie Code haben, der nicht kompiliert werden kann, posten Sie bitte diesen Code und Ihre Entwicklungsumgebung (welche C++-Compiler/Optionen verwenden Sie). Und kennzeichnen Sie dies für die Migration zu SO. Wenn Sie Homebrew verwenden, um ein Paket zu installieren, das von Glui abhängt, könnte das hier ein Thema sein, aber ich vermute, Sie erstellen Code und hoffen, mit Brew die Installation einer Abhängigkeit zu vereinfachen ...
@bmike der Code, der fehlschlägt, ist #include <GL/glui.h>, also ist das einzige Problem, das ich habe, dass es keinen von Homebrew installierten Header finden kann, von dem ich erwarten würde, dass er automatisch in den richtigen Pfad eingefügt wird

Antworten (1)

Homebrew platziert Dateien, /usr/local/Cellardamit Sie mdfind verwenden können, um die Header-Datei zu finden:

mdfind -name glui.h | grep Cellar

Dann könnten Sie Ihren Compiler so ändern, dass er das Verzeichnis für dieses Paket enthält:

clang -I /usr/local/Cellar/glui/2.36/include

Dann sollten Sie in der Lage sein, den kurzen Pfad zu verwenden, anstatt Ihre vollständige glui.h fest in den Quellcode zu codieren.

#include <GL/glui.h>

Also - ändern Sie nicht die Installation und ändern Sie stattdessen den Suchpfad für Ihren C++-Compiler, um den installierten Glui-Code zu durchsuchen, ist mein Rat. Besser noch, brew verlinkt die neuste Version der Include-Dateien mit /usr/local/include – also sollten Sie stattdessen auf das allgemeine Include und nicht auf einen versionsspezifischen Cellar für fast alle Anwendungsfälle verlinken, in denen Sie keine anheften möchten genaue Version von glui oder einer anderen Bibliothek.

clang -I /usr/local/include
brew fügt automatisch Links innerhalb /usr/local/includedieses Punktes in den Keller ein. Auf den Compiler sollte also nur verwiesen werden /usr/local/include, und er findet die verknüpften Dateien /usr/local/Cellar/glui/2.36/includevon dort aus. Der Vorteil davon ist, dass andere über brew installierte Header-Dateien ebenfalls von diesem einen include-Befehl abgeholt werden. Auch wenn @Niek glui auf eine neue Version aktualisiert, nimmt der Compiler diese automatisch auf, da brew den Link so ändert, dass er auf die neuere Version zeigt.
@AlistairMcMillan Du hast so recht! Ich habe den GL-Symlink verpasst und das nicht zuerst versucht. Danke für die bessere Antwort