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)
分享到:
相关推荐
This book’s code examples were created in response to real-world questions from working developers to reflect Swift’s newest capabilities and best practices. Each chapter groups related tasks ...
.DOC file on the COMPILER/UTILITIES disk also answers many common Technical Support questions. TABLE OF CONTENTS ----------------- 1. How to Get Help 2. Installation 3. Important Notes 4. ...
**Note**: This question is not directly related to technical knowledge but rather a common interview question. For the purpose of this document, we will focus on technical questions. #### 5. Please ...
disk also answers many common Technical Support questions. TABLE OF CONTENTS ----------------- 1. How to Get Help 2. Installation 3. Important Notes 4. Corrections to the Manuals 5. Additional ...
For the FPC compiler to find RTC SDK files, you can either copy the complete "Lib" folder (with sub-folders) from the RTC SDK package into the "/Developer/Embarcadero/fmi" folder (quick and dirty ...