在 Intel 平台的 Solaris 5.10 上编译 coreutils-8.5 时出现问题

在 Intel 平台的 Solaris 5.10 上编译 coreutils-8.5 时出现问题

我在使用 Intel 平台的 Solaris 5.10 上编译 coreutils-8.5 时遇到了麻烦cc

首先我在过程中遇到了以下错误./configure

checking whether <wchar.h> uses 'inline' correctly... no
configure: error: <wchar.h> cannot be used with this compiler (/tool/sunstudio12.1/bin/cc -xc99=all -g  -D_REENTRANT).

这似乎与这个问题。解决办法是编辑并替换的configure引用。-xc99=all-xc99=all,no_lib

这使得配置得以完成。

然后我继续运行,/usr/sfw/bin/gmake直到我收到以下消息:

Making all in src
gmake[2]: Entering directory `/home/peterp/src/coreutils-8.5/src'
gmake  all-am
gmake[3]: Entering directory `/home/peterp/src/coreutils-8.5/src'
  CCLD     chroot
Undefined                       first referenced
 symbol                             in file
eaccess                             ../lib/libcoreutils.a(euidaccess.o)
ld: fatal: Symbol referencing errors. No output written to chroot

什么可能导致这个问题?

PS 我只编译 coreutils 因为我想要颜色ls

答案1

我发现这个帖子这意味着可能缺少链接-lgen所需的参数。libcoreutils.a

我编辑src/Makefile并更改了以下行:

LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@

到:

LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -lgen -o $@

gmake再次运行,直至成功完成。

答案2

如果需要,您还可以编译(好吧,安装)一个单独的程序。下面是我单独安装“ginstall”的方法:

cd /var/tmp
rm -rf /coreutils coreutils-8.5
untgz /usr/local/src/gnu/coreutils-8.5.tar.gz
cd coreutils-8.5
setenv LDFLAGS -lgen
./configure --prefix=/usr/local \
            --with-libiconv-prefix=/usr/local \
            --with-libintl-prefix=/usr/local
gmake
cd /var/tmp/coreutils-8.5/src
gmake install OPTIONAL_BIN_PROGS="" bin_PROGRAMS=ginstall pkglibdir=""
cd /var/tmp/coreutils-8.5/man
gmake install MAN=install.1
mv /usr/local/bin/install /usr/local/bin/ginstall
mv /usr/local/share/man/man1/install.1 /usr/local/share/man/man1/ginstall.1

相关内容