Compiler Related Questions

Q: Dynamic Linking vs Static Linking (Yahoo! PhoneScreen)
A:
1.    Dynamic linking: resolve references to lib routines, linker adds start-up code to load required libs at run-time, each lib call goes through a jump table. A jump table is patched to point at the lib routine, only overhead here is indirect reference.
2.    Static Linking:  linted into program during linking phase of compilation
3.    Dynamic Linking: verifies symbols linkage, dynamic loader checks which shared libs were linked with the program, loads to memory and attach to the program memory.
Example:
ar –s  is (ranlib)
ar –rc *.a *.o
g++ -shared –o lib*.so *.o
g++ -fPIC –c *(.c
ld –lc –o lib*.so *.o
Q:  What is Relocation?  (Yahoo! Phone Screen)
A:  allowing executable and shared obj fiels to hold right info for a process’ program image. It is the process of connecting symbolic ref with symbolic defs. ELF header, program header and section header.
Q:  C++ vfpointer and vftable?
A:  virtual function table and virtual function table. Whenever there is virtual function in class definitions, these 2 things are needed for dynamic-binding(polymorphism)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值