Golang安装go-sdl2时出现"Fatal Error: SDL2/SDL.h文件不存在"问题
Golang安装go-sdl2时出现"Fatal Error: SDL2/SDL.h文件不存在"问题 大家好,
我正在尝试为Go安装“SDL-GO”包。我通过这个关于如何在Windows上安装SDL的教程成功安装了SDL本身:
但不幸的是,我仍然无法通过 go get github.com/veandco/go-sdl2/sdl 安装SDL2-GO,我总是收到这个错误信息:
In file included from go\pkg\mod\github.com\veandco\go-sdl2@v.0.4.10\sdl\audio.go:4:./sdl_wrapper.h:2:11: fatal error: SDL2/SDL.h No such file or directory
2 | #include <SDL2/SDL.h>
^~~~~~~~~~~
compilation terminated.
我在网上能找到的关于这个错误的唯一线索是,我应该尝试安装32位版本的Go。但我想问问大家,我是否遗漏了其他东西?如果可能的话,我想在Windows上使用64位版本。我对Go相当陌生,所以很可能我遗漏了一些相当明显的东西^^。
感谢你们的帮助。
祝好,
更多关于Golang安装go-sdl2时出现"Fatal Error: SDL2/SDL.h文件不存在"问题的实战教程也可以访问 https://www.itying.com/category-94-b0.html
更多关于Golang安装go-sdl2时出现"Fatal Error: SDL2/SDL.h文件不存在"问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这个问题是因为Go编译器在编译go-sdl2时找不到SDL2的头文件。你需要确保SDL2的开发库已正确安装且路径配置正确。
解决方案:
-
确认SDL2开发库安装:
- 从SDL官网下载SDL2开发库(SDL2-devel-2.x.x-mingw.tar.gz或SDL2-devel-2.x.x-VC.zip)
- 解压后,将
include和lib目录复制到你的系统路径中,例如C:\SDL2
-
设置环境变量:
- 添加
SDL2_INCLUDE_PATH指向SDL头文件目录(例如C:\SDL2\include) - 添加
SDL2_LIB_PATH指向SDL库目录(例如C:\SDL2\lib\x64) - 将SDL2的DLL文件(如
SDL2.dll)复制到你的Go项目目录或系统PATH包含的目录中
- 添加
-
使用pkg-config(推荐):
- 安装pkg-config for Windows
- 创建
sdl2.pc文件:prefix=C:/SDL2 exec_prefix=${prefix} libdir=${exec_prefix}/lib/x64 includedir=${prefix}/include Name: sdl2 Description: Simple DirectMedia Layer Version: 2.0.x Libs: -L${libdir} -lSDL2 Cflags: -I${includedir}/SDL2 - 设置
PKG_CONFIG_PATH环境变量指向该文件所在目录
-
或者直接修改Go编译命令:
set CGO_CFLAGS=-IC:/SDL2/include set CGO_LDFLAGS=-LC:/SDL2/lib/x64 -lSDL2 go get github.com/veandco/go-sdl2/sdl
验证安装:
package main
import "github.com/veandco/go-sdl2/sdl"
func main() {
if err := sdl.Init(sdl.INIT_EVERYTHING); err != nil {
panic(err)
}
defer sdl.Quit()
window, err := sdl.CreateWindow("test", sdl.WINDOWPOS_UNDEFINED,
sdl.WINDOWPOS_UNDEFINED, 800, 600, sdl.WINDOW_SHOWN)
if err != nil {
panic(err)
}
defer window.Destroy()
sdl.Delay(2000)
}
如果问题仍然存在,检查你的GCC/MinGW版本是否与SDL2库兼容。


