Notas generales
¿Qué es libuv?
libuv es una librería multi-plataforma que facilita la ejecución de operaciones de E/S de manera asíncrona. Ha sido desarrollada para Node.js, pero actualmente es usada en Luvit, Julia y pyuv, entre otros.
Características
- Bucle de eventos (event loop) basado en epoll, kqueue, IOCP (Windows) y puerto de eventos (event ports).
- Sockets UDP y TCP asíncronos.
- Resolución de DNS asíncrona.
- Operaciones de fichero y sistemas de fichero asíncronas.
- Eventos de sistemas de ficheros.
- Salida de TTY controlada mediante códigos de escape ANSI.
- Sockets compartidos para IPC, basados en sockets de dominio Unix o tuberías con nombre en Windows.
- Gestión de procesos hijos.
- Gestión de hebras y pool de hebras.
- Gestión de señales.
- Relojes de alta resolución.
- Primitivas para la sincronización de hebras.
Instalación
Preparación del entorno de trabajo y descarga del código fuente
La librería se puede compilar de manera muy simple, necesitando para ello:
Si disponemos de Scoop, podremos instalar estas dependencias haciendo, desde una ventana de comandos, lo siguiente:
C:\> scoop install git
...
C:\> scoop install cmake
...
C:\> scoop install gcc
Satisfechos los requisitos anteriores, debemos recuperar el código fuente desde su repositorio en Github:
C:\> git clone https://github.com/libuv/libuv.git
...
C:\> cd libuv
Construcción de los ficheros binarios de la librería
Ahora, podremos compilar la librería desde el código fuente obtenido en los pasos anteriores:
C:\libuv> mkdir build && cd build
...
C:\libuv\build> cmake -G "MinGW Makefiles" ..
...
C:\libuv\build> mingw32-make
...
Copiado de los ficheros de cabecera y las librerías compiladas
Para terminar, debemos guardar los ficheros compilados, así como los ficheros de cabecera de la librería:
C:\> mkdir C:\Library\Libuv\lib
...
C:\> xcopy /f /v libuv*.* C:\Library\Libuv\lib
...
C:\> xcopy /f /i /v /e ..\include C:\Library\Libuv\include
...
Utilización de la librería
Usar libuv
en Code::Blocks
-
Project Build Options | Selected Compiler:
-
Linker Settings | Link Libraries:
-
Search directories | Compiler:
C:\Library\Libuv\include
-
Search directories | Linker:
C:\Library\Libuv\lib
-