我需要在另一个没有安装mudflap库并具有不同glibc版本的linux发行版中运行我的程序。我试图编译我的程序用-static,但它是不可能的:gcc -nostdlib和mudflap
warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
所以,我想-nostdlib并手动安装该库,但得到这些错误:
[email protected]:~/Desktop$ gcc -nostdlib -Wl,-dynamic-linker,/home/myuser/Desktop/ld-linux-x86-64.so.2,-rpath,/home/myuser/Desktop /home/myuser/Desktop/libc.so.6 -fmudflap /home/myuser/Desktop/libmudflap.so.0 /home/myuser/Desktop/libdl.so.2 simple.c [email protected]:~/Desktop$ ./a.out mf: dlsym("mmap") = NULL Aborted (core dumped) [email protected]:~/Desktop$ ldd a.out linux-vdso.so.1 => (0x00007fff2bad2000) libc.so.6 => /home/myuser/Desktop/libc.so.6 (0x00007fddfd521000) libmudflap.so.0 => /home/myuser/Desktop/libmudflap.so.0 (0x00007fddfd175000) libdl.so.2 => /home/myuser/Desktop/libdl.so.2 (0x00007fddfcf70000) /home/myuser/Desktop/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00007fddfd884000) [email protected]:~/Desktop$
- 哪个ld真的被使用?在我的桌面或在/ lib64的?
- 必须包含哪些其他标志才能正确编译?
在您正在部署到其他计算机的程序中使用mudflap是否有原因?这是一个调试工具... – 2011-04-25 13:06:13