化石原创文章,转载请注明来源并保留原文链接


LibuvSharp是Libuv的C#版,最新的版本基于Libuv commit 19fb8a90648f3763240db004b77ab984264409be这个tree。它本身的github仓库在:

https://github.com/txdv/LibuvSharp

使用git clone到本地后,使用Visual Studio 2017能直接打开根目录下的LibuvSharp.vs2012.sln,这个编译出的LibuvSharp.dll是C# 4.5目标的。要支持3.5的,则用Visual Studio 2017打开LibuvSharp.net3.5.sln,直接编译出来就是3.5目标的dll。

给Unity用的话,使用3.5的。

但这还不够,这个LibuvSharp.dll只是个包装,我们还需要libuv本身的实现:需要一个libuv.dll跟这个配合。

在github上可以看到libuv @19fb8a9这个目录,点进去,浏览器会直接访问libuv的github仓库,而且是上面提到的commit revision。

git clone到本地,目标编译出libuv来。

1、本机上安装python2.x

2、下载google gyp的源码到根目录下build/gyp (build目录需要新建,gyp目录可以让git clone目录建)

git clone https://chromium.googlesource.com/external/gyp.git gyp 

3、在根目录下,运行

vcbuild.bat (会编译出Debug/libuv.lib)

或者

vcbuild.bat release share (会编译出Release/libuv.lib)

注意:

这个版本的libuv编译是用Visual Studio 2010。所以我的机器上实际有Visual Studio 2017和Visual Studio 2010 express同时安装。vcbuild.bat会找到vs2010。

但是Unity中或者C#工程中我们不能直接使用lib,而需要dll?怎么办?难道还需要自己写一个def?


化石原创文章,转载请注明来源并保留原文链接