Связывание с libuv

Я хотел попробовать использовать libuv в dlang. Я загрузил привязки dlang следующим образом:

git clone [email protected]:tamediadigital/libuv.git

Теперь, что мне делать дальше, чтобы запустить мой «hello world»?

Я пробовал это:

ldc2 hello.d -luv

Но он сказал:

ldc2: Unknown command line argument '-luv'.  Try: 'ldc2 -help'
ldc2: Did you mean '-v'?

Я думаю, мне нужно сообщить компилятору, где находятся привязки библиотек. А потом импортировать что-то в исходники, наверное, с import libuv;?

Вот код «hello world», который я хочу «перенести» на D:

#include <stdio.h>
#include <stdlib.h>
#include <uv.h>

int main() {
    uv_loop_t *loop = malloc(sizeof(uv_loop_t));
    uv_loop_init(loop);

    printf("Now quitting.\n");
    uv_run(loop, UV_RUN_DEFAULT);

    uv_loop_close(loop);
    free(loop);
    return 0;
}

Вот страница привязки github: https://github.com/tamediadigital/libuv

Домашняя страница библиотеки: http://www.libuv.org


person exebook    schedule 15.03.2017    source источник


Ответы (1)


Во-первых, это были неправильные привязки, вот хорошие: https://github.com/changloong/libuv

Предполагая, что вы сделали git [email protected]:changloong/libuv.git в текущем каталоге.

Скомпилировать:

ldc2 hello.d -I=libuv/deimos/libuv/ -I=libuv/ -L=-luv

Источник:

import uv;
import core.memory;
import std.stdio;

int main(){
    uv_loop_t *loop = new uv_loop_t;
    uv_loop_init(loop);

    printf("Now quitting.\n");
    uv_run(loop, uv_run_mode.UV_RUN_DEFAULT);

    uv_loop_close(loop);
    return 0;
}

Надеюсь, это поможет кому-то начать использовать библиотеки C в D.

person exebook    schedule 15.03.2017