本篇文章主要介绍在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/DeveloperPassword:
再次使用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-tests1..374ok 1 - platform_output...ok 373 - we_get_signalsok 374 - we_get_signals_mixed
参考链接:
