В настоящее время я работаю над сборкой Glib версии 2.45.8 для CentOS 7, работающей на x86-64, для пользовательского дистрибутива, основанного на Linux от Scratch, работающей на x86-64. При подключении к libffi возникла проблема с версией 3.2.1.
path/to/build/directory/bin/ld: warning: libc.so.6, needed by //lib/../libffi.so, not found (try using -rpath or -rpath-link)
path/to/build/directory/lib64/libffi.so: undefined reference to `free@GLIBC_2.2.5'
path/to/build/directory/lib64/libffi.so: undefined reference to `mkostemp@GLIBC_2.7'
(etc ... there are about 15 undefined references total)
path/to/build/directory/lib64/libffi.so: undefined reference to `__getdelim@GLIBC_2.2.5'
path/to/build/directory/lib64/libffi.so: undefined reference to `getenv@GLIBC_2.2.5'
Использование -rpath или -rpath-link не будет работать, поскольку файл lib c .so.6 не существует нигде в файловая система для моей сборки.
Однако у меня есть libc.so
и libc.so.0
в path/to/build/directory/lib64/
каталоге, в котором libc.so.6
не может быть найден.
Вот мой ./ настроить и сделать команды.
glib_cv_stack_grows=no \
glib_cv_uscore=no \
ac_cv_func_posix_getpwuid_r=yes \
ac_cv_func_posix_getgrgid_r=yes \
LIBFFI_CFLAGS=-lffi \
LIBFFI_LIBS=-lffi \
ZLIB_CFLAGS=-lz \
ZLIB_LIBS=-lz \
PKG_CONFIG_LIBDIR=$TARG/lib/pkgconfig \
./configure --prefix=/ --host=x86_64-linux --with-libiconv
make -j32 LDFLAGS=-liconv
Как получить правильную библиотеку lib c .so для сборки?