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


    前言

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

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

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

    go get github.com/lxn/walk
    
    • 1

    然后分别创建好了 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()
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    
    <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, PerMonitordpiAwareness>
                <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">TruedpiAware>
            windowsSettings>
        application>
    assembly>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

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

    go get github.com/akavel/rsrc
    
    • 1

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

    rsrc -manifest main.manifest -o rsrc.syso
    
    • 1

    然后就报错了,提示:无法将“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桌面程序,接下来就可以愉快地写代码了~

  • 相关阅读:
    uniapp 使用 z-paging组件
    数字营销面试题库和答案(搜索引擎、网站 URL 、网站标题、关键字、关键词优化)
    【快乐离散数学】谓词与量词 | 嵌套量词 | 狄摩根定律 | Predicates and Quantifiers | Nested Quantifiers
    如何在C++项目中用C#运行程序调试C++ DLL
    【Redis】初识Redis
    javascript: Sorting Algorithms
    聚苯硫醚离子液体|苯硼酸离子液体|聚缩醛离子液体|透明质酸离子液体
    506页18万字煤矿数字化矿山技术解决方案
    java计算机毕业设计家电售后管理系统演示录像2021MyBatis+系统+LW文档+源码+调试部署
    PTL智能拣货系统
  • 原文地址:https://blog.csdn.net/weixin_43165220/article/details/133070116