Win10+WSL开发踩坑记录

· · 6459 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

自从买了个游戏本当主力开发机以后,一直用的都是Ubuntu18.04系统,开发啥的都很顺畅,毕竟用Linux系统也用了有五六年了,也算是轻车熟路了,但是娱乐性真的是太差了,微信,QQ直接用手机版,Photoshop就有点吃力了(老婆平时P个图老是找我,但是我总以linux不能用PS而拒绝她),虽然网上也有教程使用wine来安装photoshop cc,但是肯定不如win10下用起来丝滑顺畅啊

好吧,其实是我不想浪费游戏本这GTX1660TI的显卡,虽然这显卡也算不上很好,但是拿来玩一下游戏还是很轻松的,吃鸡,使命召唤这些不开高特效,玩起来很流畅

开始正文吧,拿win10做开发系统,那当然少不了WSL(Windows Subsystem for Linux

)了,现在的WSL不像以前刚推出时那么不经蹂躏,现在稳定多了,连WSL2都出来了,那WSL已经趋于稳定的状态了,开搞

安装WSL

如何安装WSL可以参考下面的文章

https://zhuanlan.zhihu.com/p/34885182

网上的教程很多的,按照教程来操作即可

安装完了以后,打开也是很容易的,在PowerShell中,可以输入下面命令进入:

  1. wsl.exe
  2. ubuntu18.04.exe(如果安装的是ubuntu18.04版本)
  3. bash.exe

上面三种方式都可以进入到wsl中

安装各种开发工具

尝试了一下微软最新推出的Terminal,愿景是很好的,但是目前还是BUG很多,建议出稳定版后再使用

下面就是安装各种开发工具

  • Android Studio
  • VS Code
  • Java
  • Golang
  • Nodejs/npm
  • Docker

从各个官网下载安装包,然后安装即可,最好是安装版,这样安装包自动设置好了环境变量,省的自己再手动配置一遍

这中间可能会遇到更新不顺畅的问题,例如Android SDK的更新,gradle的更新等,这时候把Shadowsocks设置为全局代理即可,当然,前提是你得有Shadowsocks才行

安装完各个环境和工具后,其实已经差不多了,剩下的就是各种填坑了

踩坑

安装完各种工具,以及常用软件都没遇到啥问题,后面开始涉及到跟工作相关的操作时,问题就来了

1. wsl中使用串口工具

以前在ubuntu上调试串口的时候,安装的是picocom这款工具

# 设置端口和波特率
sudo picocom -b 1500000 /dev/ttyUSB0</pre>

现在对应的不是/dev/ttyUSBx,而是/dev/ttySx,至于是哪一个,需要判断是哪一个口,如果不知道怎么判断的话,那就一个一个试吧,我试到了第三个就找到了

sudo picocom -b 1500000 /dev/ttyS3</pre>

剩下的就跟linux没啥区别了,如果显示错乱的话,那就在串口中安装resize工具,直接resize一下就好了

2. wsl中adb工具不能发现设备

原因就是因为win10中adb的版本与wsl中adb的版本不一致造成的,一般来说安装windows下的adb都是最新版本的,所以只需要将wsl中的adb更新为最新版即可

# 安装android-tools
sudo apt install adb

# 默认安装位置为 /usr/lib/android-sdk/platform-tools/

# 下载最新版
wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip

# 解压缩
unzip ./platform-tools-latest-linux.zip

# 替换
sudo cp -r platform-tools /usr/lib/android-sd</pre>

再次执行 adb devices,就已经可以识别设备了

3. win10中go-sqlcipher的编译

公司一款产品用到了sqlcipher数据库,而后自己又使用golang重写了该产品的服务,所以就涉及到go-sqlcipher的编译了,之前在ubuntu上没啥问题,编译windows版本以及打包windows版本通过使用docker也搞定了,docker中安装gcc-mingw-w64工具以及OpenSSL 1.0.0e for 32-bit MinGW-w64,可以编译windows版本的go-sqlcipher,然后通过wine进行打包,现在即便是windows环境下,docker也还是可以的,所以打包是可以依旧使用docker来做,但是平时的运行调试就不行了,还是得在windows下编译一次才行,绕不过去的坎儿

https://github.com/xeodou/go-sqlcipher/issues/5

这篇文章中有如何编译,但是也不用照搬,照下面的步骤也可以,实质是一样的

Install TDM-GCC-64 安装gcc,这个必须有,要不然无法编译

Install MSYS,Install Perl64bit 之前安装了git for windows,里面的bash工具内置了MSYS,所以说,这一步可以省略了,直接安装一个git for windows即可

Install OpenSSL

如果说自己编译的话,还是得安装Perl64bit,但是编译也只是为了得到相应的lib文件,所以这里直接安装二级制包,这样就可以省略编译这一步骤了

可以到这个链接去下载OpenSSL的二级制包

https://slproweb.com/products/Win32OpenSSL.html

下载完成后,安装很简单,一路下一步就可以搞定

或者直接下载zip包,到这个链接中找一个顺眼的版本

https://wiki.openssl.org/index.php/Binaries

这里选择了1.1.1d,下载openssl-1.1.1d-win64-mingw.zip,解压即可

Copy OpenSSL Resources

按照说明来拷贝文件
copy_openssl_resources.png

我并没有按照上面的操作来拷贝文件,而是

将lib下面所有的文件拷贝到TDM-GCC安装目录对应的lib目录下
将include下面的openssl文件夹拷贝到TDM-GCC对应的include目录下

Compile go-sqlcipher

按上面做法操作一遍以后,执行

go get -u -v github.com/xeodou/go-sqlcipher</pre>

就直接成功了,未出现下面说的这种状况,不过如果遇到的话,按下面的方法操作一遍应该就可以解决

fix_gosqlcipher_bug.png

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:

查看原文:Win10+WSL开发踩坑记录

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

6459 次点击  
加入收藏 微博
2 回复  |  直到 2019-12-05 20:50:21
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传