Я пытаюсь использовать стандартную библиотеку libuuid внутри моего файла C-библиотеки my_uuid.c:
гван/библиотеки/my_uuid.c:
#include <uuid/uuid.h>
#pragma link "uuid"
void my_uuid_generate(uuid_t uuid)
{
uuid_generate(uuid);
}
Гван/init.c:
#include <uuid/uuid.h>
#pragma link "uuid"
#pragma link "libraries/my_uuid.c"
int main(int argc, char *argv[])
{
uuid_t uuid;
my_uuid_generate(uuid);
return 0;
}
Однако G-Wan не запускается и выводит такое сообщение:
Связывание ./init.c: неопределенный символ: uuid_generate
Это не должно быть проблемой установки libuuid или нестандартного пути, потому что такой сервлет работает успешно:
#include <uuid/uuid.h>
#pragma link "uuid"
int main(int argc, char *argv[])
{
uuid_t uuid;
char str[256];
uuid_generate(uuid);
uuid_unparse(uuid, str);
printf("%s\n", str);
xbuf_cat(get_reply(argv), "Hello, World!");
return 200;
}
Проблема может быть связана с тем, что G-Wan сначала загружает init.c, а затем my_uuid.c вместо libuuid, хотя у меня есть ссылка #pragma "uuid" в init.c.
Кто-нибудь знает, как решить проблему? Допустимо ли связывать другие библиотеки из библиотек C-файлов в gwan/libraries?