在 Solaris 10 上编译 quickfix
Posted
技术标签:
【中文标题】在 Solaris 10 上编译 quickfix【英文标题】:compiling quickfix on Solaris 10 【发布时间】:2014-09-06 12:19:40 【问题描述】:我一直在尝试在 Solaris 10 机器上编译 quickfix。但是,当我尝试运行 bootstrap
时,它会在失败之前给出大量警告形式为“警告:AM_PATH_AUDIOFILE 的引用不足定义”:
aclocal: macro `_LT_DECL_SED' required but not defined
aclocal: macro `_LT_FUNC_STRIPNAME_CNF' required but not defined
configure.ac: 92: macro `AM_PATH_XML2' not found in library'
我相当肯定这是一个路径问题,如果我运行aclocal
,它会以同样的方式失败,并且找不到 AM_PATH_XML2,但如果我运行aclocal -I /usr/local/share/aclocal/
,它会成功,尽管我的定义警告被低估了假设可以忽略。出于某种原因,Solaris 似乎将 libxml.m4 放在 /usr/local/share/aclocal 而不是大多数其他 .m4 文件所在的位置。
如何将此路径传递给 bootstrap
调用的 autoreconf?使用包含路径运行 autoreconf 不起作用。
【问题讨论】:
可能是你运行的automake太旧了。这是什么版本? autoreconf --version 提供 autoreconf (GNU Autoconf) 2.59 这似乎有十年的历史了。如果可以的话,试试更新的。 2.69 似乎是最新的(尽管它是在两年前发布的)。 好的。尝试使用 2.68 版完全没有区别 AM_PATH_XML2 问题将随着符号链接而消失 - 这是我宁愿解决的路径问题。其他两个我无法解决的宏观问题 automake 的哪个版本?该线程说 1.11 修复了您遇到的宏问题(至少对于海报而言):curl.haxx.se/mail/lib-2011-05/0286.html 【参考方案1】:如 automake 手册的Using autoreconf to Update configure Scripts 部分所述,您可以使用ACLOCAL
环境变量指定要传递给aclocal
的标志,例如
env ACLOCAL='aclocal -I /usr/local/share/aclocal/' autoreconf
【讨论】:
【参考方案2】:到了
问题在于软件包的版本,特别是 m4 太旧,但似乎除非在 autoconf 之前更新 m4,否则 autom4te 会调用一个太旧的 m4 版本造成问题。应用 m4 包后重新应用 autoconf 包解决了这个问题。
编辑
我必须安装才能编译的软件包列表 库工具 m4 自动化 sed (显然这是安装的,但 libtools 期望在 usr/local/bin 而不是 usr/bin 中。如果不安装这个 gmake 会启动 7000 个 libtools 副本,这似乎具有 sed 硬编码的路径,直到 fork 失败) perl(再次 usr/ local/bin vs usr/bin 之后只是导出 LD_LIBRARY_PATH 的问题。另外,安装 sed 后需要重新运行 bootstrap 和 configure,或者 gmake 启动了 7000 个 libtools 副本
配置后编辑 makefile 并删除标志 -Wno-unused-private-field
和 gmake 实际工作
【讨论】:
以上是关于在 Solaris 10 上编译 quickfix的主要内容,如果未能解决你的问题,请参考以下文章
在 Solaris 10 系统上编译并使用SQLite-3.4.2
在 Solaris 10 系统上编译并使用SQLite-3.4.2
在 Solaris 10 系统上编译并使用SQLite-3.4.2
Erlang/OTP 无法在 Solaris 11 11/11 上编译