开发系统: Mac OS X 10.11.5 EI Capitan 开发工具:
- 代码编写: IntelliJ IDEA (实际用了WebStorm。搞不好Android Studio都行)。
- 编译测试运行调试: Docker Toolbox (Docker的真正的编译和测试环境是在一个特权容器里做的,好的。)
基本想法就是:在集成开发环境下写代码比较轻松,能够自动完补定位什么的,愈发检查通过了以后,再在特权容器里编译测试运行,甚至,通过IDEA远程调试,就是gdbserver那一套。
想得简单,实际做了一下,出了gdb remote以外都还行,但是也有些不爽的地方。
用IntelliJ IDEA打开docker源码目录,剩下来的他怎么提醒就怎么做。
随便一打开一个go文件,它就提醒安装golang插件。那就点击安装。
####然后提示没有Go SDK,那就安装Go SDK到本机:
brew install golang
然后把SDK路径配制成 /usr/local/Cellar/go/1.6.3/libexec
。
####然后Go插件唧唧歪歪说缺少GOPATH环境变量。 这就是恶心的地方了,这还算好的了,以前还需要另一个GOROOT变量,经过进化,终于省掉了一个,可是还留着尾巴。别想这垃圾了,随便设定一个就行了。
这个GOPATH其实相当于NodeJS的NPM管理包的node_modules目录。
Docker的编译环境里甚至用的是export GOPATH="$(mktemp -d)"
,临时目录。你说这东西能有什么名堂,干脆都这样搞算了,就像Xcode那样,每个Project见一个临时目录在外面,干干净净。
所以这东西压根就是多虑产生的废物,最简单的方法是在用户的环境变量里设定成~/go
之类的(目录自己先建一下),再多虑的那就在Project设定里自己指定一个目录。
####然后,就会发现源码里到处红色错误说import失败。 解决方法就是,IntelliJ一贯的作风:在错误的地方点一下,行头会漂浮出一个解决方案,哈,就是下载软件包,当然不用每个相同的错误都一个个点过去,而是执行漂浮菜单里的那个个“全部搞定”的命令。
####最后还是有东西红色错误,说什么container.Container不存在。 Mac里没有的东西,只有linux/unix有,所以得把golang的编译器设定成linux。 就改一点:
####这下都安静了。
这个IntelliJ IDEA虽然吃内存启动慢,但是机器好时都不是问题,很智能,写起代码很舒服。
####Remote gdb呢? 没想到的是, IntelliJ IDEA虽然能轻松的调试本地的Go代码,但不能像Java那样远程调试到别的机器里的。
暂时也没找到远程gdb插件。还是手动gdb命令行搞算了。
####看来Go语言的开发环境还处在初级阶段。 1.却少Java里类似于gradle之类的统一天下的自动加载package的机制。 2.却少remote debug,不利于调试容器中的东西。 3.垃圾环境变量GOPATH还没消除,至少搞成可选配置也好啊。要是没这强制要求估计自动package加载就好了,反正go get都有了。
总之让人上手就得折腾就不好。
不过golang本身不错,虽然丑陋但是把它想象成C语言的升级版就很觉得赚大了。
2016/07/27:想起IntelliJ IDEA还有一个分支是C/C++开发环境,叫做CLion,里面很可能有gdb remote debug功能,回头试试看。
来源:oschina
链接:https://my.oschina.net/u/2253129/blog/718466