GoLand一个目录下多个文件的编译和运行设置

GoLand一个目录下多个文件的编译和运行设置


1、目标

当我们对代码进行重构时,部分功能需要单独提取到一个文件中,以此来保持功能的独立化和模块化,方便进行扩展和维护,但是提取出来之后直接编译报错,明明函数存在但是编译时显示找不到函数,包也都是一个main包中,进行了解后发现是需要将一个目录下的go文件进行统一编译运行,于是进行了一番尝试后总结如下。

2、设置方式

  • 1、打开运行/调试配置,最主要的是设置运行种类为目录,默认运行种类为当前的单个文件;
  • 2、选择运行目录,选择后再编译就是编译该目录下的所有.go文件了;
  • 3、输入目录是生成可执行程序的目录;对于交叉编译的可执行程序需要去掉构建后运行的勾选;
  • 4、工作目录可执行程序的运行目录,运行目录不是现象中的输出目录,一般是一样的,如果运行可执行程序时部分文件使用了相对路径,那么一定要设置正确工作目录,相对路径都是基于工作目录的,这点需要注意一下;

如下图,2020.3汉化后还是比较好理解的:

在这里插入图片描述

3、最后

再重新编译就可以了。

对于测试web或者有配置文件的情况下,html文件和配置文件一般都会使用相对路径,因此调试时一定要注意工作目录;

而对于交叉编译,默认构建后是无法执行的,如果进行了nfs文件系统挂载则可以直接设置输出目录到nfs对应的目录,就可以不用一直拷贝调试文件到设备了。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是在 Windows 上使用 GoLand 进行交叉编译,在 CentOS 上运行 Go 程序的详细步骤: 1. 首先,在 Windows 上安装 GoLand 和 Go 环境,并确保 GoLand 可以正常使用。 2. 在 GoLand 中创建一个新的 Go 项目,并在项目中编写您的 Go 代码。 3. 在 GoLand 中打开终端,输入以下命令,安装交叉编译工具链: ``` go get golang.org/x/sys/windows go get github.com/mattn/go-sqlite3 GOOS=linux GOARCH=amd64 go get github.com/mattn/go-sqlite3 ``` 这些命令将安装必要的工具链和库,以便在 Windows 上编译 Linux/Unix 系统下的可执行文件。 4. 在 GoLand 中打开项目设置,选择左侧的“Go”选项,然后选择“Go Build Tags”选项卡。在这里,您需要添加一个标记来指定您要编译的目标操作系统和架构。例如,如果您要在 CentOS 7 上运行您的程序,您需要添加以下标记: ``` linux amd64 ``` 5. 在 GoLand 中打开终端,输入以下命令,以交叉编译您的程序: ``` go build -tags="linux amd64" -o myprogram-linux-amd64 ``` 这将在 Windows 上编译您的程序,并将可执行文件输出到当前目录下的“myprogram-linux-amd64”文件中。这个文件是在 CentOS 上运行的二进制文件。 6. 在 CentOS 上,将“myprogram-linux-amd64”文件复制到您的服务器上,并运行以下命令,以确保它具有可执行权限: ``` chmod +x myprogram-linux-amd64 ``` 7. 最后,在 CentOS 上运行您的程序: ``` ./myprogram-linux-amd64 ``` 如果一切顺利,您的程序应该成功运行,并输出您期望的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

昵称系统有问题

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

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

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

打赏作者

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

抵扣说明:

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

余额充值