7

我正在尝试在 EC2 上组装一个 AMI,目前在构建 0mq 时停滞不前。

最初,我在运行 ./configure 时遇到此错误

checking for uuid_generate in -luuid... no
configure: error: cannot link with -luuid, install uuid-dev.

我通过 yum 安装了 e2fsprogs-devel 和 linux-utils,我相信其中包含所需的库,但仍然出现上述错误。我随后用 yum 安装了 uuid-devel 并没有进一步。

然后,我创建了一个链接,如下所示:

sudo ln -s /lib64/libuuid.so.1.3.0 /lib64/libuuid.so

现在 ./configure 愉快地完成了,但是当我运行 make 时出现错误

[...]
CXX    libzmq_la-signaler.lo
CXX    libzmq_la-socket_base.lo
In file included from socket_base.cpp:50:
uuid.hpp:31:23: error: uuid/uuid.h: No such file or directory
In file included from socket_base.cpp:50:
uuid.hpp:92: error: 'uuid_t' in namespace '::' does not name a type
make[2]: *** [libzmq_la-socket_base.lo] Error 1
make[2]: Leaving directory `/home/this/infrastructure/zeromq2-2/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/this/infrastructure/zeromq2-2/src'
make: *** [all-recursive] Error 1

以下是 /usr/include/uuid.h 的开头,如果有用的话。

#ifndef __UUID_H__
#define __UUID_H__

/* workaround conflicts with system headers */
#define uuid_t       __vendor_uuid_t
#define uuid_create  __vendor_uuid_create
#define uuid_compare __vendor_uuid_compare
#include <sys/types.h>
#include <unistd.h>
#undef  uuid_t
#undef  uuid_create
#undef  uuid_compare

在这一点上,我很困惑。

4

3 回答 3

19

正如https://bugzilla.redhat.com/show_bug.cgi?id=576296#c0所指出的,使用 libuuid-devel 而不是 uuid-devel,

$ sudo yum install libuuid-devel

这为我解决了丢失的 /usr/include/uuid/uuid.h 文件。

于 2011-09-10T02:45:58.600 回答
7

最终,我通过运行满足了依赖

$ yum install uuid-devel

还值得注意的是,为了让 libzmq 链接到其他需要它的程序(例如 Mongrel2),我必须添加该行

/usr/local/lib

到 /etc/ldconfig.so.conf 并运行

$ ldconfig -v | grep zmq

(如果您在输出中没有看到 libzmq.so 的条目,则说明有问题)

于 2011-08-05T00:05:57.030 回答
0

或者,阅读有关安装 zeromq的文档!:)

IE

确保libtool, autoconf,automake已安装。检查您的系统上是否安装了 uuid-dev 软件包、uuid/e2fsprogs RPM 或同等产品。解压缩 .tar.gz 源存档。运行./configure,然后make。安装ØMQ系统范围运行sudo make install。在 Linux 上,sudo ldconfig安装 ØMQ 后运行。

如前所述,在 Amazon Linux 上,您可以通过以下方式安装 deps:

sudo yum install uuid uuid-devel

请注意,说明还提到了要做的要求:

sudo ldconfig

安装后也是。

于 2012-08-25T00:52:38.937 回答