Назад | Перейти на главную страницу

Проблемы с компиляцией 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.

я нашел эта почта что подразумевало, что может отсутствовать -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