为什么构建liblzma会因“找不到库”而失败?

时间:2014-05-13 17:32:57

标签: mingw libtool

我在他们的网站上安装了mingw。 我安装了开发包,它包含iconv和intl,msys以及所有其他内容。

我运行./configure然后make install。链接时,它会打印:

 ../../src/liblzma/liblzma.la  -lintl
libtool: link: cannot find the library `/home/keith/staged/mingw32/lib/libiconv.
la' or unhandled argument `/home/keith/staged/mingw32/lib/libiconv.la'
make[2]: *** [xzdec.exe] Error 1

我不知道keith是谁或为什么它看起来像库..我尝试设置CCFLAGS CXXFLAGS和LDFLAGS到我的包和库文件夹/usr/local/lib

没有雪茄......任何想法为什么会发生这种情况以及如何解决它?

2 个答案:

答案 0 :(得分:4)

这是MinGW gettext包的已知问题。 Keith Marshall," keith"问题,解释一下MinGW SourceForge网站上in a bug report的内容。

一个相当丑陋的解决方法是实际创建一个/home/keith/staged/mingw32文件夹,然后将符号链接添加到/mingw中的必要文​​件夹,即:

mkdir -p /home/keith/staged/mingw32
cd $_
ln -s /mingw/bin bin
ln -s /mingw/lib lib

(请注意,如果您的文件系统中不存在/mingw,则可以通过将此行添加到/etc/fstab的底部来创建它:

C:/MinGW                /mingw

当然,假设你在C:\MinGW安装了MingW。关闭终端窗口并重新运行msys.bat以使更改生效。)

然后,您需要download libiconv.la来自方便准备文件的人,并将其复制到/home/keith/staged/mingw32/lib/

这是一次糟糕的黑客攻击,但它对我有用。

答案 1 :(得分:2)

根据this bug report,最新的gettext包有问题(gettext-0.18.3.2)。

我尝试了以下两种方法。它似乎都运作良好。

  • 删除不良文件

    pushd / mingw / lib /&& rm libasprintf.la libgettextlib.la libgettextpo.la libgettextsrc.la libintl.la&& POPD

    或者您可以重命名它们。事实上,如果你用文本编辑器打开它们,你会在这些* .la文件中看到/ home / keith / ....

  • 使用gettext-0.18.3.1包

    关闭MSYS并运行以下命令以使用旧版本:mingw-get upgrade“gettext = 0.18.3.1-1 *”,PATH = C:\ mingw \ bin;%PATH%,当然。