当前位置: 首页 > news >正文

20240926 关于Goland处理wsl-GOROOT原理猜测

GOROOT的原理

go sdk与java jdk类似,是go的编译工具链的集合。

在windows上,我们通过在系统环境变量中添加GOROOT并设置为go sdk地址,使得命令行可以访问到go sdk并执行go test、build等命令,这样设置的变量是全局生效的

而在linux中,我们并没有修改系统环境变量,而是安装go后,将go sdk地址写为GOROOT写在/home/user_name/.bashrc中,并export PATH=$PATH;$GOROOT/bin来调用go sdk,这样设置的变量只在bash中生效(重点来了)

GOPATH已经被弃用,影响不是很大。

问题在哪里?

所以,当Goland调用make时,GOROOT实际上并没有定义,而为了弥补这一点,Goland非常“聪明”地将ide保管的GOROOT、GOPATH加入环境变量发送给make,从而使它能调用go sdk。

这样有什么问题呢?这一套在windows上啥问题也没有,甚至可以支持自定义go sdk版本,但是,聪明的读者可能已经发现,这个GOROOT和make看到的GOROOT根本不是一个东西!!!

我们通过在makefile开头打印GOROOT变量来看一下Goland干了什么好事?
请添加图片描述
请添加图片描述

好家伙,他直接把//wslUbuntu给发了过去,这不是三体人和地球人聊科学吗?make直接看不懂了,直接罢工。

解决办法:有,但是极为丑陋

只说结论的话,确实是有的。
步骤:

  1. 右上角齿轮->Go设置->GOROOT->无SDK
  2. 右上角三个点->编辑配置->取消包含系统变量->添加用户环境变量(GOROOT=“/usr/local/go/bin/”)
  3. 在makefile中添加GOLOCAL=$(GOROOT)/go
  4. 使用GOLOCAL进行GO操作

代价:

  1. 正常wsl开发需要设置Go sdk,这下又要重新设置
  2. 正常终端开发需要用这个makefile的话,又要把makefile改回去

官方赶紧把wsl优化端出来!!!

http://www.lryc.cn/news/450222.html

相关文章:

  • Anki 学习日记 - 卡片模版 - 单选ABCD(纯操作)
  • 钉钉x昇腾:用AI一体机撬动企业数字资产智能化
  • 【C/C++】 秋招常考面试题最全总结(让你有一种相见恨晚的感觉)
  • CSS面试真题 part1
  • 针对考研的C语言学习(定制化快速掌握重点5)
  • 构建高效房屋租赁系统:Spring Boot应用
  • 学习单片机编程和硬件设计步骤
  • .net Framework 4.6 WebAPI 使用Hangfire
  • 两个向量所在平面的法线,外积,叉积,行列式
  • C++之 友元重载 以及最常用的几种友元函数
  • 动态规划(3)——dp多状态问题Ⅰ
  • 在Mac电脑上安装adb环境
  • 分糖果C++
  • Spring中如何为静态变量注入值
  • HTML5实现唐朝服饰网站模板源码
  • ESXI识别USB设备
  • 视频美颜SDK与直播美颜工具API是什么?计算机视觉技术详解
  • not exist 解决一对多 场景 条件过滤问题
  • 解决$‘r‘ command not found或者文件夹显示’tvsf 33‘$‘r‘
  • linux:详解nohup命令
  • 负载箱:充电桩测试利器
  • Ubuntu 开机自启动 .py / .sh 脚本,可通过脚本启动 roslaunch/roscore等
  • RabbitMQ 消息队列:生产者与消费者实现详解
  • vue3项目中组件切换不起作用
  • YOLOv11改进策略【损失函数篇】| Slide Loss,解决简单样本和困难样本之间的不平衡问题
  • 动静态库(Linux)
  • 51单片机和ARM单片机的区别
  • [Day 81] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • flac格式怎么转mp3?关于flac转为MP3的方法介绍
  • 【笔记】KaiOS 系统框架和应用结构(APP界面逻辑)