Chroot кросс-компилировать неопределенные символы

Я пытаюсь «кросс-компилировать» приложение из Ubuntu 14.04 в Debian Wheezy 7.9 (несовместимая версия libc между ними). Я настроил среду chroot, где я установил Debian Wheezy. Я использую блоки кода для компиляции в Ubuntu. Я настроил проект, поэтому я использую только вещи из среды chroot (то есть gcc, libc и т. Д.). Я также использую -nodefaultlibs и связывая все вручную. Но даже тогда у меня есть неразрешенные символы и я не знаю, откуда они берутся.

/var/chroot/usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so: undefined reference to `memcpy@GLIBC_2.14'
/var/chroot/usr/lib/x86_64-linux-gnu/librt.so: undefined reference to `__clock_getres@GLIBC_PRIVATE'
/var/chroot/usr/lib/x86_64-linux-gnu/librt.so: undefined reference to `__pthread_get_minstack@GLIBC_PRIVATE'
/var/chroot/usr/lib/x86_64-linux-gnu/librt.so: undefined reference to `__clock_gettime@GLIBC_PRIVATE'
/var/chroot/usr/lib/x86_64-linux-gnu/librt.so: undefined reference to `__clock_nanosleep@GLIBC_PRIVATE'
/var/chroot/usr/lib/x86_64-linux-gnu/librt.so: undefined reference to `__clock_getcpuclockid@GLIBC_PRIVATE'
/var/chroot/usr/lib/x86_64-linux-gnu/librt.so: undefined reference to `__clock_settime@GLIBC_PRIVATE'

/var/chroot/usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so не имеет ссылки на 2.14 (просмотрел objdump)

Вот моя командная строка:

g++-4.7 -L../Debug
-L../dependencies/lib/debug
-L/var/chroot/usr/lib/gcc/x86_64-linux-gnu/4.7
-L/var/chroot/lib/x86_64-linux-gnu
-L/var/chroot/usr/lib/x86_64-linux-gnu
-L/var/chroot/usr/lib
-o ../Debug/xxx obj/Debug/src/xxx.o
-nostdlib -Wl,-t
/var/chroot/usr/lib/x86_64-linux-gnu/crt1.o
/var/chroot/usr/lib/x86_64-linux-gnu/crti.o
/var/chroot/usr/lib/gcc/x86_64-linux-gnu/4.7/crtbegin.o
-lboost_system-gcc47-mt-d-1_55
-lboost_filesystem-gcc47-mt-d-1_55
-lboost_program_options-gcc47-mt-d-1_55
-lboost_thread-gcc47-mt-d-1_55
-l:libpthread-2.13.so
-lxxxD
-l:libcrypto++.a
-lgcc_s
-lstdc++
-lrt
-lm
-l:libc.so.6
-l:libgcc.a
-l:libc_nonshared.a
-l:ld-linux-x86-64.so.2
/var/chroot/usr/lib/gcc/x86_64-linux-gnu/4.7/crtend.o
/var/chroot/usr/lib/x86_64-linux-gnu/crtn.o

Буст-библиотеки скомпилированы в среде chroot и сделаны как статические библиотеки. Я установил флаг gcc / ld для печати всего связанного материала по полному пути, и действительно все загружается из chroot.

Кто-нибудь знает, что может быть не так? Возможен ли выбранный мной путь?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]