Проблемы компиляции coreutils-8.5 на Solaris 5.10 на платформе Intel
У меня возникают проблемы при компиляции coreutils-8.5 на Solaris 5.10 на платформе Intel с использованием 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
,
2 ответа
Я нашел этот пост, который подразумевал, что может быть пропавший -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
снова прошел успешно до завершения.
Вы также можете скомпилировать (ну, установить) одну отдельную программу, если хотите. Вот как я просто устанавливаю "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