我正在尝试在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
我在这一点上很难过。
答案 0 :(得分: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文件。
答案 1 :(得分:7)
最终,我通过运行
来满足依赖性$ yum install uuid-devel
另外值得注意的是,为了让libzmq链接到需要它的其他程序(例如Mongrel2),我不得不添加行
/usr/local/lib
到/etc/ldconfig.so.conf并运行
$ ldconfig -v | grep zmq
(如果你没有在输出中看到libzmq.so的条目,那就关闭了)
答案 2 :(得分:0)
或者,阅读安装zeromq的documentation! :)
即
确保已安装libtool
,autoconf
,automake
。
检查系统上是否安装了uuid-dev软件包,uuid / e2fsprogs RPM或同等产品。
解压缩.tar.gz源档案。
运行./configure
,然后是make
。
要安装ØMQ系统范围的运行sudo make install
。
在Linux上,安装ØMQ后运行sudo ldconfig
。
如前所述,在Amazon Linux上,你可以通过以下方式安装deps:
sudo yum install uuid uuid-devel
N.B。说明书还提到了要求:
sudo ldconfig
安装后也是。