Golang在Linux Mint系统下使用VS Code安装SDL2/Raylib的步骤指南

Golang在Linux Mint系统下使用VS Code安装SDL2/Raylib的步骤指南 大家好,有人能帮我在我的电脑上安装sdl2或raylib吗? 我是Go语言新手,想通过制作一些小游戏来学习它。 但我首先需要安装一个图形库,而安装过程感觉太让人抓狂了!

我尝试了YouTube视频里的安装提示,但在1.18版本上似乎不起作用?

Game Dev With Go: Flappy Bird(ish)

Games With Go EP 06 - SDL2 Setup

我的控制台输出:

notevil@Furya:~$ go get -v -u _link_.com/gen2brain/raylib-go/raylib
go: go.mod file not found in current directory or any parent directory.
‘go get’ is no longer supported outside a module.
To build and install a command, use ‘go install’ with a version,
like ‘go install example.com/cmd@latest’
For more information, see _link_
or run ‘go help get’ or ‘go help install’.
notevil@Furya:~$ go install -v -u _link_@latest
flag provided but not defined: -u
usage: go install [build flags] [packages]
Run ‘go help install’ for details.
notevil@Furya:~$ go install _link_@latest
package _link_.com/gen2brain/raylib-go/raylib is not a main package
notevil@Furya:~$

而对于sdl2,我在VS Code中遇到了导入错误:

could not import _link_.com/veandco/go-sdl2/sdl (cannot find package “_link_.com/veandco/go-sdl2/sdl” in any of
/home/notevil/.go/src/github.com/veandco/go-sdl2/sdl (from $GOROOT)
/home/notevil/go/src/github.com/veandco/go-sdl2/sdl (from $GOPATH))compilerBrokenImport

更多关于Golang在Linux Mint系统下使用VS Code安装SDL2/Raylib的步骤指南的实战教程也可以访问 https://www.itying.com/category-94-b0.html

2 回复

谁能告诉我,在 Go 的上下文中,“不是一个主包”是什么意思?

go install  _link_.com/veandco/go-sdl2/{sdl,img,mix,ttf}@latest
go: downloading _link_.com/veandco/go-sdl2 v0.4.17
package _link_.com/veandco/go-sdl2/sdl is not a main package
package _link_.com/veandco/go-sdl2/img is not a main package
package _link_.com/veandco/go-sdl2/mix is not a main package
package _link_.com/veandco/go-sdl2/ttf is not a main package

是 1.18 版本的问题吗?大约一年前,我的笔记本电脑上有一个旧版本,并且安装了 sdl2。

更多关于Golang在Linux Mint系统下使用VS Code安装SDL2/Raylib的步骤指南的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


在Linux Mint上安装SDL2和Raylib的步骤

1. 安装系统依赖

首先安装必要的系统库:

# 更新包管理器
sudo apt update

# 安装SDL2开发库
sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev

# 安装Raylib开发库
sudo apt install libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxinerama-dev

2. 初始化Go模块

从你的错误信息看,你需要在项目目录中初始化Go模块:

# 创建项目目录
mkdir my-game-project
cd my-game-project

# 初始化Go模块
go mod init mygame

# 这将创建go.mod文件

3. 安装Go绑定库

对于Raylib:

# 安装raylib-go
go get github.com/gen2brain/raylib-go/raylib

# 或者使用go install安装示例程序
go install github.com/gen2brain/raylib-go/raylib/examples/core/2d_camera@latest

对于SDL2:

# 安装go-sdl2
go get github.com/veandco/go-sdl2/sdl
go get github.com/veandco/go-sdl2/img
go get github.com/veandco/go-sdl2/mix
go get github.com/veandco/go-sdl2/ttf

4. 验证安装

创建测试文件验证安装是否成功:

Raylib测试 (main.go):

package main

import rl "github.com/gen2brain/raylib-go/raylib"

func main() {
    rl.InitWindow(800, 450, "Raylib Go Test")
    defer rl.CloseWindow()

    rl.SetTargetFPS(60)

    for !rl.WindowShouldClose() {
        rl.BeginDrawing()
        rl.ClearBackground(rl.RayWhite)
        rl.DrawText("Raylib Go Works!", 190, 200, 20, rl.LightGray)
        rl.EndDrawing()
    }
}

运行测试:

go run main.go

SDL2测试 (sdl_test.go):

package main

import (
    "fmt"
    "github.com/veandco/go-sdl2/sdl"
)

func main() {
    if err := sdl.Init(sdl.INIT_EVERYTHING); err != nil {
        fmt.Printf("Failed to initialize SDL: %v\n", err)
        return
    }
    defer sdl.Quit()

    window, err := sdl.CreateWindow("SDL2 Test", 
        sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED,
        800, 600, sdl.WINDOW_SHOWN)
    if err != nil {
        fmt.Printf("Failed to create window: %v\n", err)
        return
    }
    defer window.Destroy()

    fmt.Println("SDL2 initialized successfully!")
    sdl.Delay(2000)
}

运行测试:

go run sdl_test.go

5. VS Code配置

确保VS Code的Go扩展已安装并正确配置。如果仍有导入错误,尝试:

# 在项目目录中整理依赖
go mod tidy

# 或者清除模块缓存
go clean -modcache

6. 常见问题解决

如果遇到CGO链接问题,设置环境变量:

# 在~/.bashrc或~/.zshrc中添加
export CGO_ENABLED=1
export CC=gcc

# 然后重新加载
source ~/.bashrc

对于权限问题:

# 确保go路径在PATH中
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin

7. 完整安装脚本

创建安装脚本 setup.sh

#!/bin/bash

echo "Installing system dependencies..."
sudo apt update
sudo apt install -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
sudo apt install -y libasound2-dev libx11-dev libxrandr-dev libxi-dev libgl1-mesa-dev

echo "Setting up Go project..."
mkdir -p ~/go-projects/game-learning
cd ~/go-projects/game-learning
go mod init game-learning

echo "Installing Go libraries..."
go get github.com/gen2brain/raylib-go/raylib
go get github.com/veandco/go-sdl2/sdl

echo "Installation complete!"

给脚本执行权限并运行:

chmod +x setup.sh
./setup.sh

这些步骤应该能解决你在Linux Mint上安装SDL2和Raylib的问题。如果遇到特定错误,请提供具体的错误信息以便进一步诊断。

回到顶部