我正在尝试在 Cygwin 2.884 (Windows 7) 下编译 i3 版本 4.14.1。我已经通过 Cygwin 安装程序安装了所需的 libiconv 库,但是在运行 ./configure 时出现此错误:
configure: error: in `/home/msamec/Downloads/i3-4.14.1/x86_64-unknown cygwin':
configure: error: cannot find the required iconv_open() function despite trying
to link with -liconv
See `config.log' for more details
有什么线索可以帮助它找到图书馆吗?
我曾尝试手动编译库 libiconv-1.13.1 但遇到了一些我不知道如何解决的错误:
libtool: link: /bin/gcc -shared .libs/localcharset.o .libs/relocatable.o -o .libs/cygcharset-1.dll -Wl,--enable-auto-image-base -Xlinker --out-implib -Xlinker .libs/libcharset.dll.a
.libs/relocatable.o: In function `DllMain':
/home/msamec/Downloads/libiconv-1.13.1/libcharset/lib/./relocatable.c:324: undefined reference to `cygwin_conv_to_posix_path'
/home/msamec/Downloads/libiconv-1.13.1/libcharset/lib/./relocatable.c:324:(.text+0x113): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `cygwin_conv_to_posix_path'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:59: libcharset.la] Error 1
make[2]: Leaving directory '/home/msamec/Downloads/libiconv-1.13.1/libcharset/lib'
make[1]: *** [Makefile:34: all] Error 2
make[1]: Leaving directory '/home/msamec/Downloads/libiconv-1.13.1/libcharset'
make: *** [Makefile:42: lib/localcharset.h] Error 2
我已经 grepped iconv_open() 函数名称并在 cygwin 文件夹中找到它
/usr/i686-pc-cygwin/sys-root/usr/include/iconv.h
并且也在 libiconv 文件夹中
/usr/include/iconv.h
但由于某种原因,配置脚本无法找到它。
这是我的config.log
这是我的 iconv.h https://gist.github.com/anonymous/0b117d1680954d591f989256b508bfc5
我检查了这个库文件 inconv.h 在 Ubuntu 上的位置。Unlinke 在 cygwin 中位于 /lib/ 中,而在 cygwin 中位于 /usr/include/ 中。尝试将库复制到该位置,但这也无济于事。我也能够在我的家庭 Windows 10 上重现该问题。
编辑:这是我正在使用的配置文件:在此处输入链接描述
测试失败为
iconv_open
在图书馆找libiconv
,错了。测试代码应该使用提供/usr/include/iconv.h
的和 cygwin 库
libiconv
导出:符号
libiconv_open
。您需要更正测试才能使用iconv.h
.测试定义在
configure.ac
一种可能的解决方法是更改它以测试这两个选项。
免责声明:未经测试,您需要运行
autoreconf
才能重建configure