Я хочу предоставить общие библиотеки наряду со своей программой вместо того, чтобы использовать целевую систему из-за различий в версии.
ldd
говорит, что моя программа использует, они совместно использовали, освобождает:
linux-gate.so.1 => (0xf7ef0000)**(made by kernel)**
libc.so.6 => /lib32/libc.so.6 (0xf7d88000)**(libc-2.7.so)**
/lib/ld-linux.so.2 (0xf7ef1000)**(ld-2.7.so)**
Я успешно связал ld-xxx.so путем компиляции с:
gcc -std=c99 -D_POSIX_C_SOURCE=200112L -O2 -m32 -s -Wl,-dynamic-linker,ld-2.7.so myprogram.c
Но я не справился к успешной ссылке libc-xxx.so
. Как я могу сделать это?
Передача -nodefaultlibs
или -nostdlib
в gcc скажет ему не передавать библиотеки по умолчанию в качестве аргументов в ld. После этого вы сможете явно указать libc, с которой хотите связать. См. Справочную страницу gcc (1)
для получения дополнительных сведений и предупреждений относительно обоих вариантов.