Shared Library/Comiler/Link/Loaderロール
1520 ワード
コンパイラが実行するタスク(gcc)
cpp hello.c > hello.i
gcc -S hello.i
as -o hello.o hello.s
共有ライブラリ
static library -> .a
dynamic library -> .so
$ file a.out
a.out: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.18, not stripped
Dynamic Loader
共有ライブラリに関連付けられたプログラムを実行すると、内部で動的Loaderというプログラムが実行されます
1.動的リンクの共有ライブラリを見つけてメモリにロードする
2.entry function(C言語のmain関数)を検索して呼び出す
3.プログラムの実行
runtime environment
プログラム実行時にmain関数を呼び出し、複数の操作を実行します.C runtime envを探します.
https://en.wikipedia.org/wiki/Runtime_system
https://en.wikipedia.org/wiki/Crt0
References
https://www.lesstif.com/software-architect/shared-library-linker-loader-12943542.html
Reference
この問題について(Shared Library/Comiler/Link/Loaderロール), 我々は、より多くの情報をここで見つけました https://velog.io/@soopsaram/Shared-LibraryCompilerLinkerLoader-역할テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol