C言語

gccのオプションを利用すると、オブジェクトファイルとライブラリがリンクできるようなので、実際にソースを用意して試してみました。

オブジェクトファイル

前回gccで作成したオブジェクトファイルを利用します。

L     ィ       .text           $     €           0`.data                               @ 0タ.bss                                € 0タ.rdata             (              @ 0@/4                 4              @ 0@/15             8   H  ・         @ 0@U牙・・・    ヌ$    ・    ク    ノテ瑞食ello World GCC: (GNU) 5.3.0           zR |・           !    A・B
]ナ  
          
                   .file         gsource.c          _main                            .text          !                .data                            .bss                             .rdata                                                             $          8                ___main          _puts            .   .rdata$zzz .eh_frame .rdata$zzz .eh_frame 

プログラム自体は、Hello Worldを表示するだけの簡単なプログラムです。

リンク

ldコマンドでライブラリとオブジェクトファイルを結合してみます。

d source.o C:\MinGW\lib\crt2.o C:\MinGW\lib\gcc\mingw32\5.3.0\crtbegin.o -LC:\MinGW\lib\gcc\mingw32\5.3.0 -lmingw32 -lgcc_eh -lgcc -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32 -lmingw32 -lgcc_eh -lgcc -lmoldname -lmingwex -lmsvcrt C:\MinGW\lib\gcc\mingw32\5.3.0\crtend.o

作成された実行ファイルを実行してみます。

C:\Users\irail\Documents\Program>a
Hello World

無事Hello Worldの文字が表示されました。

 

参考文献

【C言語】gccでオブジェクトファイルとライブラリをリンクする
Tagged on:

コメントを残す