Protobuf 3.0.0-alpha-1 不在 Windows 上编译
Posted
技术标签:
【中文标题】Protobuf 3.0.0-alpha-1 不在 Windows 上编译【英文标题】:Protobuf 3.0.0-alpha-1 not compiling on windows 【发布时间】:2015-01-16 20:06:54 【问题描述】:我正在尝试使用 MinGW 4.9.2 和 MSYS 在 Windows 上编译 protobuf 3.0.0 alpha 1。
按照我应该做的说明:
./configure
make
make check
make install
我添加了--prefix=/c/path/to/mingw to configure
(How to build Google's protobuf in Windows using MinGW?) 但没有帮助。
它在make
失败并显示以下消息:
CDPATH="$ZSH_VERSION+.:" && cd . && /bin/sh /home/Markus/protobuf-3.0.0-alpha- 1/缺少 aclocal-1.14 -I m4
/home/Markus/protobuf-3.0.0-alpha-1/missing: line 81: aclocal-1.14: command not 找到了
警告:您的系统上缺少“aclocal-1.14”。
You should only need it if you modified 'acinclude.m4' or 'configure.ac' or m4 files included by 'configure.ac'. The 'aclocal' program is part of the GNU Automake package: <http://www.gnu.org/software/automake> It also requires GNU Autoconf, GNU m4 and Perl in order to run: <http://www.gnu.org/software/autoconf> <http://www.gnu.org/software/m4/> <http://www.perl.org/>
make: *** [aclocal.m4] 错误 127
我尝试安装 Automake,但它没有附带 aclocal。
今天在工作中,我第一次尝试使用裸机 MinGW 和 MSYS 就成功了。
【问题讨论】:
【参考方案1】:看来您需要安装 autoconf(它与 automake 是分开的,尽管它们经常一起使用)。您可能还需要安装 libtool。
【讨论】:
对我来说并没有那么容易工作,因为不知何故我的 mingw 不喜欢 autoconf。我最终使用 cygwin 来编译 protobuf,但至少它现在可以工作了。 嗯,“MinGW 不喜欢 autoconf”是什么意思? autoconf 是 MSYS 打算运行的主要内容之一,因此它应该可以工作。另一方面,如果您是从发布包编译,那么 autoconf/automake/libtool/etc.不应该是必需的(因为它随包一起提供),因此您可能需要针对 protobufs 提交错误。 在 MSYS 中配置后运行 make 时,它不断发送几千行空的“autom4te:”(之后没有其他内容,只是“autom4te”并以错误结束。发生在我测试的各种版本中,包括最新的。关于不需要:这很奇怪。我在工作的 PC 上不需要它,但在我的笔记本电脑和私人 PC 上它都失败了。我还发现了一个二进制包 autoconf 现在可以与 MSYS 一起使用。跨度> @Shyro 因此,如果构建认为文件已过期,它将重新运行 autotools。如果它在一台计算机上工作而在另一台计算机上失败,那么问题可能只是时钟。发生故障的计算机上的时钟是否设置错误? 实际上它在两个系统上都失败了,只在一个系统上工作。所有这些都正确设置了时钟。我想不出任何会对其产生影响的差异。以上是关于Protobuf 3.0.0-alpha-1 不在 Windows 上编译的主要内容,如果未能解决你的问题,请参考以下文章