目次: GCC
コンパイラの-nostdlibと -nostartfilesの効果についてメモしておきます。確認方法は簡単で、gccに -vオプションを付けるだけです。
結果が大量に出力されるので、collect2のオプションのみ抜粋して、さらに今回の話題と関係ない余計なオプションは省きます。
/usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginT.o AAAAA.o --start-group -lgcc -lgcc_eh -lc --end-group /usr/lib/gcc/x86_64-linux-gnu/9/crtend.o /usr/lib/x86_64-linux-gnu/crtn.o
初期化を行うcrt1, crtiと、終了時の処理を行うcrtend, crtnが暗黙のうちにリンクされています。また -lgccや -lcといったCライブラリ系も暗黙のうちにリンクされます。
AAAAA.o --start-group -lgcc -lgcc_eh -lc --end-group
先ほどの結果と比べるとcrt何とかが全部消えましたが、-lgccなどは健在です。Cライブラリ関数は使えますが、crt何とかが呼んでくれていたmainが呼ばれなくなります。代わりに _startという関数を定義せよと言われます。
AAAAA.o
暗黙のうちにリンクされるオブジェクトやライブラリが全てなくなりました。printfのようなCライブラリ関数も使えなくなります。
< | 2021 | > | ||||
<< | < | 10 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | - | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | - | - | - | - | - | - |
合計:
本日:
管理者: Katsuhiro Suzuki(katsuhiro( a t )katsuster.net)
This is Simple Diary 1.0
Copyright(C) Katsuhiro Suzuki 2006-2023.
Powered by PHP 8.2.15.
using GD bundled (2.1.0 compatible)(png support.)