我想提供共享庫以及我的程序,而不是使用目標系統的版本差異。如何鏈接到不同的libc文件?
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
。我怎樣才能做到這一點 ?
你可能要考慮靜態連接你的程序,如果你只有一個可執行文件。這樣,沒有人會意外丟失你的libc版本,如果他們刪除你的程序,他們不會讓你的libc徘徊。 – nategoose 2010-04-28 17:26:28
相同,但靜態:http://stackoverflow.com/questions/10763394/how-to-build-a-c-program-using-a-custom-version-of-glibc – 2015-06-08 20:14:58