如何获取/使用 LibUUID?

50

我正在尝试替换对::CoCreateGUID的调用,以便在Linux上的C++程序中生成GUID。

我了解到libuuid支持此功能,并且我已经阅读了这个问题

我对Ubuntu/GCC/Linux有点陌生,所以我从以下方面开始:

#include <uuid/uuid.h>

现在我卡住了! :) G++ 找不到 uuid.h,我不知道该如何获取/找到它。


1
为了扩展话题,在 Gentoo 上的操作:* 搜索 /usr/include/uuid/uuid.h ... sys-apps/util-linux-2.18-r1 (/usr/include/uuid/uuid.h) - kagali-san
4
值得注意的是,目前在Linux内核上,您可以通过读取/proc/sys/kernel/random/uuid来获取UUID。 - Josef
2个回答

86

在Ubuntu中,您可以执行apt-cache search libuuid以查看与文本libuuid相关的可用软件包。以下是我在Ubuntu 9.04上的输出:

$ apt-cache search libuuid
libuuid-perl - Perl extension for using UUID interfaces as defined in e2fsprogs
libuuid1 - universally unique id library
libuuid1-dbg - Debugging information for libuuid1
uuid-dev - universally unique id library - headers and static libraries
uuid-runtime - universally unique id library
libuuidm-ocaml-dev - Universally unique identifiers for OCaml

我认为你需要的是uuid-dev,可能还需要安装uuid-runtime。执行命令sudo apt-get install uuid-dev,它将安装你需要继续解决问题所需的头文件和库。


6
谢谢,看起来就是我所缺少的。我运行了这个命令:"apt-get install uuid-dev",问题得到解决了。 - waterlooalex
请注意,在CentOS上有libuuid-devuuid-dev两个选项,请明智选择... - rogerdpack
值得一提的是,这种方法相当“hacky”,需要使用#ifdef才能在其他操作系统上运行。Macports提供了“port install libuuid”命令,但Homebrew则没有。不过,uuid已经是macOS的一部分了。 - blkpingu

18

5
这是给那些希望从源代码编译软件包的人。如果你使用的是Ubuntu(或Debian)操作系统,那么安装dev软件包的方法是通过 apt-get 命令来完成。 - artless noise
1
这是alpine镜像,包名为util-linux-dev将添加libuuid-dev - Abd-Elaziz Sharaf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接