windows下如何为go程序添加资源?

我要为程序添加菜单、图标、对话框,这个就需要资源文件了,但怎么让go程序在生成程序时将资源链接进去?

只用代码来创建这些东西也不是不行,但
1)太繁琐。为了一个菜单反复CreateMenu、AppendMenu实在不是个事儿;
2)不好改

共 3 个回复


joe9i0

我记得是在1.2还是1.3之后, #1楼的方法已经不行了.

我之前特别关注过这个问题.

通过 go build -n 查看执行构建流程, 中间有一步关键的pack资源在新版本中丢弃了.

需要使用下面方式手工pack资源.

# 图标源文件
hello.ico

# 创建rc文件
echo 'IDI_ICON1 ICON "hello.ico"' > hello.rc

# 生成资源目标文件
windres -o hello.syso hello.rc

# 编译Go源码, 输出目标文件
go tool 8g -o hello.8 hello.go
go tool pack grcP . hello.a hello.8 hello.syso
go tool 8l -o hello.exe -L . hello.a
# 1

ThoseFlowers

@joe9i0 如果资源中只有字符串表,即使是在1.4下,#1的方法也是可行的。别的类型的资源还没试过

# 2