将libuv作为静态lib加入VS2017工程

in #libuv6 years ago

libuv 可实现同步、异步、阻塞、非阻塞,异步IO等东西。
http://libuv.org/
https://github.com/libuv/libuv
下面的步骤展示了,将libuv建立成一个VS2017项目libuv,其生成目标为静态lib。编译成功后,将libuv.lib作为我项目(比如,叫tyyxmr)的一部分。tyyxmr加入如下头文件后,
#include "uv.h"
就可使用其中的函数。
(1)新建一个VS2017项目libuv,注意使用windows桌面的静态库。建立成功后,右键点击项目libuv,选择libuv属性页后,可看到配置属性=》常规里,
目标文件扩展名为.lib; 配置类型为静态库(.lib)
(2)在libuv工程中加入如下6个头文件。
Uv.h uv文件夹下五个文件
其他头文件没有包含在xmrig工程中。
在libuv工程中加入若干文件。
参看工程F:\LibCXXTest\LibUVCopy\uv.sln
包括:src文件夹下全部文件,以及src\win文件夹下全部文件
(3)
libuv工程的属性页,选择VC++目录=》包含目录,将前述头文件所在目录加进去,这样,VS2017能找到这些头文件。
(4)libuv工程的属性页,选择C/C++=》预处理定义,加入:
WIN32;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_WIN32_WINNT=0x0600;_GNU_SOURCE;
_CRT_SECURE_NO_DEPRECATE;和_CRT_NONSTDC_NO_DEPRECATE;必要,其它几个应该可以不要。。
(5)libuv工程的属性页,选择“不适用预编译头”
这样,就能够生成libuv.lib。
接下来,可以在我的项目中适用libuv.lib。
(给自己提醒:libuvCopy下实现了前面的所有步骤。)
具体步骤:
(1)创建工程tyyxmr,在代码里加入
#include "uv.h"
将来要使用这里面的函数。
(2)选择工程hhjxmr的属性页,在C/C++=》常规=》附加包含目录,把uv.h文件所在目录加进去;在链接器=》常规=》附加库目录,把libuv.lib文件所在目录加进去;在链接器=》输入=》附加依赖项,将libuv.lib加入。
(3)头文件加入下列代码,因为libuv用到了这里面的函数。
#pragma comment(lib,"advapi32.lib")
#pragma comment(lib,"iphlpapi.lib")
#pragma comment(lib,"psapi.lib")
#pragma comment(lib,"shell32.lib")
#pragma comment(lib,"user32.lib")
#pragma comment(lib,"userenv.lib")
#pragma comment(lib,"ws2_32.lib")
成功使用libuv.

Sort:  

Congratulations @ranksvm! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.32
TRX 0.26
JST 0.039
BTC 94921.11
ETH 3381.56
USDT 1.00
SBD 3.33