mingw 可用的包含uuid_generate uuid_create的libuuid

由于种种原因,需要在mingw下用uuid_generate, mingw 自带的libuuid 没有uuid_generate, 于是开始疯狂google

最后在这里找到了一个可以用的版本

http://sourceforge.net/p/libuuidmingw/

其中,文件gen_uuid.c需要做一些修改,修改后的文件如下

/*
 * gen_uuid.c
 *
 *  Created on: 2011/02/13
 *      Author: psi
 */

/**
 *  See also: http://linux.die.net/man/3/uuid_generate
 */

#include "uuid_inner.h"

void uuid_generate(uuid_t out){
    UuidCreateNil((UUID*)out);
    UuidCreate((UUID*)out);
}
void uuid_generate_random(uuid_t out){
    char* buf = (char *) out;
    int i;
    for(i=0;i<UUID_T_LENGTH;i++){
        buf[i] = (rand() >> 20) & 0xff;
    }
    UUID* uuid = out;

    //see also original libuuid source.
    unsigned short* clock_seq = (unsigned short*) uuid->Data4;
    *clock_seq = (*clock_seq & 0x3FFF) | 0x8000;
    unsigned short* time_hi_and_version = (unsigned short*) uuid->Data3;
    *time_hi_and_version = (*time_hi_and_version & 0x0FFF) | 0x4000;
}
//TODO: Should we implement these functions?
void uuid_generate_time(uuid_t out){
    UuidCreateNil((UUID*)out);
    UuidCreate((UUID*)out);
}


如果在msys中直接autoconf会报错,正确的编译方法为

libtoolize --force
aclocal
autoheader
automake --force-missing --add-missing
autoconf
./configure
make

这个库实际上是封装了winapi中的UuidCreate 等函数,因此在使用时,需要额外链接  librpcdce4.a librpcrt4.a 这两个库



转载于:https://my.oschina.net/fireman2011/blog/220685

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值