【Go】rsrc不是内部或外部命令、无法将“rsrc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称 解决方法

前言

想尝试用go创建一个桌面应用程序,然后查了下决定用 walk。

我们要先下载walk,这里 官方链接

按照官方文档,我们先用go get命令下载。

go get github.com/lxn/walk

然后分别创建好了 main.gomain.manifest 文件,代码如下

package main

import (
	"github.com/lxn/walk"
	. "github.com/lxn/walk/declarative"
	"strings"
)

func main() {
	var inTE, outTE *walk.TextEdit
	MainWindow{
		Title:   "SCREAMO",
		MinSize: Size{600, 400},
		Layout:  VBox{},
		Children: []Widget{
			HSplitter{
				Children: []Widget{
					TextEdit{AssignTo: &inTE},
					TextEdit{AssignTo: &outTE, ReadOnly: true},
				},
			},
			PushButton{
				Text: "SCREAM",
				OnClicked: func() {
					outTE.SetText(strings.ToUpper(inTE.Text()))
				},
			},
		},
	}.Run()
}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
        </dependentAssembly>
    </dependency>
    <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings>
            <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
            <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True</dpiAware>
        </windowsSettings>
    </application>
</assembly>

之后,再按照官方说的,下载 rsrc 工具

go get github.com/akavel/rsrc

下载好后,在终端执行如下命令:

rsrc -manifest main.manifest -o rsrc.syso

然后就报错了,提示:无法将“rsrc”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

之后我又尝试在项目目录里面,打开cmd窗口,执行 rsrc -manifest main.manifest -o rsrc.syso ,发现还是不行:rsrc不是内部或外部命令。

我直接云里雾里,咋回事?为啥不行?然后我百度别人怎么用walk的,还是没找到问题,为啥他们可以我一样的步骤一样的代码就不行?

解决

之后,我去问ai,说我没有正确安装rsrc工具,我寻思怎么就没有正确安装了?不是用go get命令安装吗,我也是这么安装的呀?

在这里插入图片描述
啊?要bin目录有rsrc才行?可是我执行go get后,只有pkg目录有下载rsrc的源码,bin目录,啥也没有。

然后我继续问,说环境变量要指定bin目录才行。如下:
在这里插入图片描述

gopath不用说,在一开始安装go语言环境的时候就配置了的,但是我没想到gobin还需要单独配置。配置完后(有些电脑,配置完了可能需要重启才会生效),打开cmd,输入:go env 命令执行,如下:

在这里插入图片描述
这些都是我们自己配置的目录。

配置好后,我再去执行 go get github.com/akavel/rsrc ,发现bin目录下,还是没有rsrc工具,继续问ai。

然后我们去 pkg 目录下,找到 rsrc 的源码目录:
在这个目录下,打开cmd,执行:go install

然后我们去bin目录,就发现有一个 rsrc.exe 文件了。

在这里插入图片描述
最后,我们再返回到项目里,在终端执行 rsrc -manifest main.manifest -o rsrc.syso ,这样就不会报错了。

在这里插入图片描述

执行完这步操作,我们编译main.go,得到了一个 main.exe 程序,然后把 main.manifest 重命名为 main.exe.manifest ,把 main.exe.manifest 放到和 main.exe 同一个目录下后,双击运行 main.exe,就会弹窗一个窗口。

在这里插入图片描述
运行:

在这里插入图片描述

ok,以上,我们就创建了第一个go桌面程序,接下来就可以愉快地写代码了~

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

符华-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值