本篇文章主要介绍在macOS上如何完成libuv的编译环境搭建
一、libuv本地编译
参照官方README,下载libuv、gyp。
➜ git clone git@github.com:libuv/libuv.git
➜ cd libuv
➜ git clone https://chromium.googlesource.com/external/gyp build/gyp
gyp 是一个用来生成项目文件的工具,生成项目文件后可以调用GCC、vsbuild、Xcode 等编译平台来编译。
下载gyp仓库时,可能会因为某墙原因,报如下错误 :
Cloning into 'build/gyp'...
fatal: unable to access 'https://chromium.googlesource.com/external/gyp/': Failed to connect to chromium.googlesource.com port 443: Operation timed out
针对这一问题,可以去源代码仓库下载文件(需fq),选择master分支,下载.tgz为后缀的文件。
然后进入libuv/build
目录,创建gyp目录,将之前下载的 gyp-refs_heads_master.tar.gz
移到build/gyp目录下,并解压该文件压缩包。
➜ cd build
➜ mkdir gyp
➜ cd gyp
➜ tar -zxvf gyp-refs_heads_master.tar.gz
创建Xcode工程文件uv.xcodeproj
。
➜ ./gyp_uv.py -f xcode
['-f', 'xcode', '-I', 'common.gypi', 'test/test.gyp', '--depth=.', '-Goutput_dir=/Users/bgl/OpenSource/libuv/out', '--generator-output', '/Users/bgl/OpenSource/libuv/out', '-Dhost_arch=x64', '-Dtarget_arch=x64', '-Duv_library=static_library']
使用xcodebuild进行libuv的编译。
➜ xcodebuild -ARCHS="x86_64" -project out/uv.xcodeproj -configuration Release -alltargets
注意:
在编译的时候,可能会遇到如下错误:
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
造成这一问题的主要原因是在Mac应用商城安装完Xcode后,还需在终端环境下配置下。配置命令如下:
➜ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
Password:
再次使用xcodebuild进行libuv编译,即可编译成功。
二、运行测试用例
1. 本地编译
➜ ./gyp_uv.py -f make
['-f', 'make', '-I', 'common.gypi', 'test/test.gyp', '--depth=.', '-Goutput_dir=/Users/bgl/OpenSource/libuv/out', '--generator-output', '/Users/bgl/OpenSource/libuv/out', '-Dhost_arch=x64', '-Dtarget_arch=x64', '-Duv_library=static_library']
➜ make -C out
2. 运行测试用例
➜ ./out/Debug/run-tests
1..374
ok 1 - platform_output
...
ok 373 - we_get_signals
ok 374 - we_get_signals_mixed
参考链接: