OSX 系统中配置libuv

OSX 系统中配置libuv

最近在研究Node的源码,涉及到(libuv)[]。我打算将libuv library编译到自己的OS X系统中。

下载源码

git clone https://github.com/joyent/libuv

通过autotools编译

安装autotools

$ brew install autoconf
$ brew install automake
$ brew install libtool

编译

$ sh autogen.sh
$ ./configure
$ make
$ make check
$ make install

执行make check时会出现部分报错,可以直接忽视。

运行demo

测试编译是否成功,可以通过如下小程序进行测试。

#include <stdio.h>
#include <uv.h>
int main() {
    uv_loop_t *loop = uv_loop_new();
    printf(“Now quitting.\n”);
    uv_run(loop, UV_RUN_DEFAULT);
    return 0;
}

执行gcc ./main.cc命令会报如下错误:

    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    “_uv_loop_new”, referenced from:
    _main in main-66f6f5.o
    “_uv_run”, referenced from:
    _main in main-66f6f5.o
ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

相关信息可以参考libraries-to-compile-libuv-on-os-x。
使用gcc -o app main.cc /usr/local/lib/libuv.a -framework CoreFoundation -framework CoreServices即可获取执行结果。
为了方便日后学习,写了个快捷脚本。

#!/bin/bash

if [[ “$1”==”” ]];
    then CMD=”gcc -o app “$1” /usr/local/lib/libuv.a -framework CoreFoundation -framework CoreServices”;
    echo $CMD;
    $CMD;
fi

相关链接

  • uvbook
  • libuv

你可能感兴趣的:(libuv,nodejs,node)