试试ia32-lib
从使用者层面,你可以看看 LD_PRELOAD 相关的知识
当然也可以去学习更多关于内核、进程、编译器的知识
2012/3/7 Plain_Text
>
>
> glibc 并不仅仅是一套库,似乎跟系统结合得非常紧密。有无办法让应用程序
> 绕过它?当然这并没有多大的实际意义,只是想通过这个问题稍微深入了解一下系
> 统。比如下面简单的示例程序:
>
> int main(void)
> {
>return 0;
> }
>
> 并不使用任何的 C 库函数和变量,按理来说不需要使用到 glibc. 如果不加
> 任何编译选项直接编译,用 ldd 发现它依赖 gli
主函数必须是汇编语言,其它C函数只要不调用libc即可。
给你个最小的例子:
root@vc:~# gcc -m32 -s -nostdlib tiny.s
root@vc:~# ls -la a.out
-rwxr-xr-x 1 root root 356 Mar 7 02:59 a.out
root@vc:~# ./a.out
root@vc:~# gcc -m64 -s -nostdlib tiny.s
root@vc:~# ls -la a.out
-rwxr-xr-x 1 root root 512 Mar 7 02:59 a.out
root@vc:~# ./a.out
On Tue, Mar 6, 2012 at 5:16 PM, helight xu wrote:
> 请教以下大家,我在64位机上要编译32位程序,我指定了-m32后,仍然报错
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for
> -lstdc++
> /usr/bin/ld: skipping incompatible
> /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a when se
请教以下大家,我在64位机上要编译32位程序,我指定了-m32后,仍然报错
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for
-lstdc++
/usr/bin/ld: skipping incompatible
/usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a when searching for
-lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2
main函数的入口地位是由标准库决定的
--
冷静认真,稳定运行;随时候命,宠辱不惊
在 2012年3月7日,7:25,Plain_Text 写道:
>
>
> glibc 并不仅仅是一套库,似乎跟系统结合得非常紧密。有无办法让应用程序
> 绕过它?当然这并没有多大的实际意义,只是想通过这个问题稍微深入了解一下系
> 统。比如下面简单的示例程序:
>
> int main(void)
> {
>return 0;
> }
>
> 并不使用任何的 C 库函数和变量,按理来说不需要使用到 glibc. 如果不加
> 任何编译选项直接编译,用 ldd 发现它依赖 glib
debian默认的编译内核为i386,对于现代的cpu来说,性能有不少的折扣。问如何
重新编译内核为i686平台的?
THX!
--
To UNSUBSCRIBE, email to debian-chinese-gb-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4f561ef5.6020...@gmail.com
7 matches
Mail list logo