在Solaris机器上构建Zookeeper 3.4.12 C客户端失败并出现libtool错误

时间:2018-06-27 06:07:47

标签: shell solaris apache-zookeeper libtool

我正在尝试在Solaris计算机上构建zookeeper 3.4.12 c客户端。以下是我遵循的步骤,

  1. 将源tarball和cd解压缩/解压缩到zookeeper-x.x.x / src / c 目录。
  2. 执行“ ./configure [OPTIONS]”以生成makefile。      ./configure --without-cppunit

此步骤失败,并出现以下错误

/bin/sh ./libtool  --tag=CC    --mode=link gcc  -Wall -Werror -g -O2
-D_GNU_SOURCE -no-undefined -version-info 2 -lnsl -lsocket -export-symbols-regex '(zoo_|zookeeper_|zhandle|Z|format_log_message|log_message|logLevel|deallocate_|allocate_|zerror|is_unrecoverable)'
-o libzookeeper_st.la -rpath /usr/local/lib  libzkst.la libhashtable.la libtool: link: /bin/nm -p   ./.libs/libzkst.a ./.libs/libhashtable.a |  | /bin/gsed 's/.* //' | sort | uniq > .libs/libzookeeper_st.exp ./libtool[1732]: eval: syntax error at line 1: `|' unexpected
*** Error code 3 make: Fatal error: Command failed for target `libzookeeper_st.la'

对错误有任何想法吗?

关于, 阿什维尼。

2 个答案:

答案 0 :(得分:0)

错误是因为在命令行的此部分缺少命令:

... ./.libs/libzkst.a ./.libs/libhashtable.a |  | /bin/gsed 's/.* //' ...

如果可以在Makefile中找到该配方,则可能有一个$(东西)被扩展为空字符串,因此尝试在管道中使用空命令。

答案 1 :(得分:0)

发现了问题。生成文件中有这样的内容:

“ libzookeeper_st.la:$(libzookeeper_st_la_OBJECTS)$(libzookeeper_st_la_DEPENDENCIES)$(AM_V_CCLD)$(libzookeeper_st_la_LINK)-rpath $(libdir)”。

如果我删除了 -rpath $ {libdir),一切都将正确构建。 不知道-rpath $(libdir)是做什么的。 -rpath $(libdir)扩展为“ -rpath / usr / local / lib”。但这可以解决问题。