주소: http://nikhilm.github.io/uvbook/
우선 예제를 돌리기 전에 git으로 소스코드를 빌드해서 시스템에 설치를 한다.
자세한 내용은 전에 포스팅한 libuv를 참고
아래 명령처럼 libuv.a 파일이 /usr/local/lib/에 있어야 한다.
$ ls /usr/local/lib/libuv.a
/usr/local/lib/libuv.a
첫 번째 예제 - http://nikhilm.github.io/uvbook/basics.html#hello-world
소스코드
새 uv.h에서는 uv_loop_new 대신에 uv_loop_init를 사용하라고 적혀있다. 0.12버전 이후에 제거된다고 한다.
/*
* Allocates and initializes a new loop.
* NOTE: This function is DEPRECATED (to be removed after 0.12), users should
* allocate the loop manually and use uv_loop_init instead.
*/
UV_EXTERN uv_loop_t* uv_loop_new(void);
따라서 이 예제는 다음과 같이 수정되어야 한다.
빌드가 안되는 경우에는?
다음과 같이 에러가 나는 경우가 있다.
~/Desktop/uvbook/code/helloworld$ gcc main.c
/tmp/cc9WCGsn.o: In function `main':
main.c:(.text+0x9): undefined reference to `uv_loop_new'
main.c:(.text+0x28): undefined reference to `uv_run'
collect2: ld returned 1 exit status
undefined reference의 경우에는 libuv.a를 지정하지 않아서 그렇다.
$ gcc main.c /usr/local/lib/libuv.a 와 같이 했는데도 에러가 난다고요?
이 경우는 librt.so도 링크를 해야 한다. 이것에 대해서는 stackoverlow를 참고하라
gcc main.c /usr/local/lib/libuv.a -lrt
a.out 대신 이름을 지정하고 싶다면 아래와 같이 한다.
gcc -o hello main.c /usr/local/lib/libuv.a -lrt
Makefile로 만든다면 아래와 같다. Makefile
main: main.c
gcc -o hello main.c /usr/local/lib/libuv.a -lrt
clean:
rm hello
'Programing > Node.js' 카테고리의 다른 글
libuv 계층도 (0) | 2014.04.15 |
---|---|
libuv가 많이 바뀌었다. (0) | 2014.04.10 |
libuv (0) | 2014.04.01 |
Node.js winston 표준 시간이 안맞는 경우 해결 방법 (0) | 2014.03.20 |
솔루션 파일 error MSB5014: 파일 형식 버전을 인식할 수 없습니다. (0) | 2014.01.08 |