golang:"go get github.com/.." 错误 "cannot find header file" - 这是在哪里配置的?

golang: "go get github.com/.." errors with "cannot find header file" - where is this configured?

我正在尝试将 GO 与 SFML 一起使用并在示例程序中使用。 我需要使用 "go get".
安装包 gosfml 我在 Mac OSX.

我从源代码编译并安装了 SFML。 包含文件在 /usr/local/include/SFML

下面的命令给出了找不到头文件的错误。

> go get github.com/manyminds/gosfml

# github.com/manyminds/gosfml
go-proj/src/github.com/manyminds/gosfml/circleShape.go:7:11: fatal error: 'SFML/Graphics/CircleShape.h' file not found
 #include <SFML/Graphics/CircleShape.h>
          ^
1 error generated.

如何配置 GO 来查找头文件?

谢谢(Go 新手)

安装正在寻找您似乎没有安装的 SFML 的头文件。我会先看这里http://www.sfml-dev.org/download/csfml/

如果您在安装头文件后仍然遇到问题,您可以尝试添加一个环境变量 CGO_CFLAGS 和适当的包含。像

CGO_CFLAGS="-I/path/to/installed_headers/for/sfml"

您需要两个环境变量设置: 这样做,关于 "libs" 的错误也会消失。

CGO_CFLAGS == -I%CGO_SFML_INCLUDE%
CGO_LDFLAGS== -L%CGO_SFML_LIB%

我使用了两个额外的变量来保存路径。 所以我也用:

CGO_SFML_INCLUDE == G:\SDK\SFML\include
CGO_SFML_LIB     == G:\SDK\SFML\lib\gcc

使用时注意:

%PERCENTAGE_SIGN%

它查找 "PERCENTAGE_SIGN" 环境变量的值并 将内容粘贴到那里。

我在我的变量前加上 "CGO_" 不是因为它是必需的,而是因为在按字母数字排序环境变量时更容易找到它。

"CGO_CFLAGS" 和 "CGO_LDFLAGS" 上的 "CGO_" 是必要的。

链接器想要lib目录, 编译器需要包含目录

绝对确保您拼写正确,因为如果您在此处输入错误,您将不会收到任何不同的错误消息。

我犯的一个大错误是输入“CGO_FLAGS”而不是“CGO_CFLAGS”。

这是我用 Golang 设置 SFML 的视频: https://www.youtube.com/watch?v=jqoUiIsPfNA

请注意,在我的回答中我使用了绝对路径,因为我发现抽象程度较低的答案更容易。 将 "G:\SDK\SFML" 替换为您的 sfml 所在的位置。