我在使用cc的Intel平台上编译Solaris 5.10上的coreutils-8.5时遇到了麻烦。
首先,我在./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).
这似乎与这个问题的问题类似。 解决scheme是编辑configure ,并将-xc99=all的引用replace为-xc99=all,no_lib 。
这允许configuration完成。
然后我运行/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 。
我发现这个post暗示可能会有一个libcoreutils.a链接所需的缺less-lgen参数。
我编辑了src/Makefile并改变了这行:
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
至:
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -lgen -o $@
并再次运行gmake成功完成工作。
如果你愿意的话,你也可以编译,(安装)一个单独的程序。 下面是我自己安装'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