【发布时间】:2021-11-11 19:06:18
【问题描述】:
我正在尝试使用 MINGW64 和 Msys 在 windows10 上构建和安装 OpenFst 库,但在使用 make 构建时出现以下错误。我第一次使用这个命令:
./configure --enable-grm --enable-far --enable-ngram-fsts MAKE="mingw32-make"
此命令的某些检查结果生成否:
checking whether we are cross compiling... no
checking for sysroot... no
checking for a working dd... ./configure: line 7016: cmp: command not found
./configure: line 7016: cmp: command not found
checking for mt... no
checking if : is a manifest tool... no
checking for unistd.h... no
checking if gcc supports -fno-rtti -fno-exceptions... ./configure: line 8930: diff: command `not found`
checking whether to build static libraries... no
其他检查结果正常,是的。然后我使用了make命令:
mingw32-make
它适用于某些文件,然后因该错误而终止:
libtool: error: can't build x86_64-w64-mingw32 shared library unless -no-undefined is
specified
这是我第一次使用 MinGW 进行构建。所以,我不知道错误是什么意思,以及是否从负责它的配置中检查结果“否”。
【问题讨论】:
-
diff命令有效吗?您可能需要安装它。此外,您应该使用make而不是mingw32-make。 -
@HolyBlackCat 不,差异不起作用。也使不工作,但“mingw32-make”做同样的工作。它们之间有什么区别?
-
make是一个成熟的 Make(使用 MSYS2 的 Cygwin 分支)。mingw32-make是在没有 Cygwin 的情况下将 Make 移植到 Windows 的尝试,它使用cmd而不是sh作为外壳,并且由于大多数 makefile 不期望它,因此并非所有人都可以使用它。上次我尝试过,它也相当有问题。 -
“diff 不工作。也使不工作”你需要安装两者。
-
@HolyBlackCat 我安装了它们并使用 make 而不是
mingw32-make但仍然出现错误。
标签: makefile c++17 mingw msys openfst