glui.h没找到


2

我用自制软件安装了glui

$ 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

但是,当我尝试在C ++中使用标头时<glui.h><GL/glui.h>或者<GLUI/glui.h>它给出了... not found错误。我应该如何安装glui以便c ++找到它?


目前尚不清楚这是适合这里还是Stack Overflow。如果您的代码无法编译 - 请发布该代码和您的开发环境(您使用的是什么C ++编译器/选项)。并将此标记为迁移到SO。如果你使用自制软件来安装一个依赖于glui的软件包 - 这可能是主题,但我猜你正在制作代码并希望使用brew来简化安装依赖...
bmike

@bmike失败的代码是#include <GL / glui.h>,所以我唯一的问题是它找不到自制软件安装的头文件,我希望自动将其放入正确的路径
Niek

Answers:


2

Homebrew放置文件,/usr/local/Cellar因此您可以使用mdfind来定位头文件:

mdfind -name glui.h | grep Cellar

然后,您可以更改编译器以包含该包的目录:

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

然后你应该能够使用短路径而不是将完整的glui.h硬编码到源代码中。

#include <GL/glui.h>

所以 - 不要改变安装,而是改变C ++编译器的搜索路径来搜索安装的glui代码是我的建议。更好的是,brew将最新版本的包含文件链接到/ usr / local / include - 所以你应该链接到一般包含而不是版本特定的Cellar,几乎所有用例都不需要固定一个精确版的glui或其他图书馆。

clang -I /usr/local/include

3
brew会自动/usr/local/include将该点内的链接放入Cellar。因此,应该只指向编译器/usr/local/include,它将/usr/local/Cellar/glui/2.36/include从那里找到链接的文件。这样做的好处是,通过brew安装的其他头文件也将被这一个include命令选中。此外,如果@Niek将glui更新为新版本,编译器将自动选择该版本,因为brew将更改链接以指向较新版本。
Alistair McMillan

1
@AlistairMcMillan你是如此正确!我错过了GL符号链接,并没有先尝试。感谢更好的答案
bmike
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.