Windows系统通过部署wsl + Goland进行跨平台开发

1.背景

近期项目中因为用到了 Golang库中的 "log/syslog" 包,而这个包是禁止在windows平台上编译的.

并且在windows环境上开发也会有诸多不便,如执行makefile文件的make命令,本地开发环境中docker,etcd,redis的搭建等等,而这些通过部署wsl去搭建一个linux环境就很可以很方便的解决了.

2.安装WSL 以及 设置linux用户信息

2.1 wsl 安装

前置条件 : windows10及以上版本

进入windows电脑的powershell界面(以管理员身份运行) , 输入wsl --install命令 , 默认安装的linux发行版是ununtu.

相关命令

wsl --install # 安装命令

wsl --list --online #查看可用发行版列表

wsl --install -d <distroname> #安装一个发行版

2.2 设置linux用户信息

在安装完成之后,系统将会要求为linux创建用户名和密码 , 此用户名密码 和 windows系统中的用户名密码无关,是独立与每个单独安装的linux发行版的. 并且此账户将是发行版的默认用户,可以执行sudo命令.

2.3 忘记密码

在windows的powershell 界面使用 wsl -u root (如下图) , 使用passwd <username> , <username>是linux账户中的用户名 , 想要修改哪个用户就输入相应的用户名. 根据相应的提示输入新密码即可.

2.4 如何进入linux发行版

同样是先打开windows系统的powershell界面 , 然后输入你安装的发行版的名称即可.如,我安装的linux是ubuntu的系统,输入如下图内容即可.

3. Goland + wsl 搭建跨平台开发环境

首先需要进入linux系统 , 去搭建golang的环境. (这个此处就不再介绍了,推荐使用 go语言版本管理工具g , 可以自行google , 或者参考我的博客 , 不过是windows版本的,操作流程类似 Go版本管理工具g的使用(Windows版本)_windows go版本管理工具-CSDN博客)

3.1 方法一 (稍稍占用内存 , 比较麻烦)

在golang界面打开wsl远程链接

选择安装的wsl实列

选择使用的IDE和打开的项目

  • 如果是已经在windows平台上开发过的项目 , 需要将这个项目从windows平台移动到linux服务器上

我这里因为是在linux机器中已经安装过goland了,所以此处显示已经安装. 没有安装过的需要等待加载完成之后,进行安装.也可以通过安装选项,去修改安装方式.

而且因为是在linux机器上安装的goland , 之前安装的哪些插件之类的也都没用办法同步.

3.2 方法二

正常在windows环境下打开golang, 创建项目/打开已有项目,在编辑配置处选择运行环境,让项目运行与使用wsl安装的linux发行版上 , 并且勾选在远程目标上构建

在管理目标处,设置配置信息 , 分别为GoROOT和GOPATH的环境变量的目录(是linux上的,不能选用windows系统路径)

如果项目启动时,需要执行配置文件的路径 , 则在程序实参处配置--conf path 时, 这个path也需要时linux上的路径,因此如果此处配置启动命令,要求需要将指定的配置文件也放在linux的相应目录中

相关推荐
Estar.Lee4 分钟前
时间操作[计算时间差]免费API接口教程
android·网络·后端·网络协议·tcp/ip
学Linux的语莫9 分钟前
搭建服务器VPN,Linux客户端连接WireGuard,Windows客户端连接WireGuard
linux·运维·服务器
legend_jz14 分钟前
【Linux】线程控制
linux·服务器·开发语言·c++·笔记·学习·学习方法
Komorebi.py15 分钟前
【Linux】-学习笔记04
linux·笔记·学习
黑牛先生16 分钟前
【Linux】进程-PCB
linux·运维·服务器
友友马35 分钟前
『 Linux 』网络层 - IP协议(一)
linux·网络·tcp/ip
新知图书1 小时前
Rust编程与项目实战-模块std::thread(之一)
开发语言·后端·rust
盛夏绽放1 小时前
Node.js 和 Socket.IO 实现实时通信
前端·后端·websocket·node.js
Ares-Wang1 小时前
Asp.net Core Hosted Service(托管服务) Timer (定时任务)
后端·asp.net
猿java1 小时前
Linux Shell和Shell脚本详解!
java·linux·shell