タグ

Cとコンパイルに関するakatakunのブックマーク (2)

  • 静的ライブラリ,共有ライブラリ,動的リンク,静的リンク - iwiwi 備忘録

    静的ライブラリとは 静的ライブラリ (static library) は ar コマンドで .o をまとめて作った .a ファイル. libhoge.a が有る時,gcc に -lhoge オプションを与えるとリンクされる. データが全て含まれるので .a ファイルはコンパイル時のみ必要 .a ファイルの中身は .o ファイルの連結のようなものであり,連結時に与えた順番通りに読み込まれる 共有ライブラリとは 共有ライブラリ (shared library) は gcc に -shared オプションを与えて得られる .so ファイル. libhoge.so が有る時,gcc に -lhoge オプションを与えるとリンクされる. 共有ライブラリの動的リンクとは 共有ライブラリは通常は動的リンクされる. .so ファイルの内容は実行ファイルに含まれず,.so ファイルが必要であるということが記

    静的ライブラリ,共有ライブラリ,動的リンク,静的リンク - iwiwi 備忘録
    akatakun
    akatakun 2019/03/29
    Static LibraryはCompileしたらBinaryに組み込まれる,環境非依存,Shared LibraryはLinkしたら実行時にLoadされる,Binaryが小さい.複数プロセスでも同じものを使うので使用メモリが少ない
  • .soや.dylibや.aファイル、共有ライブラリなどについて調べてみた - kanonji’s diary

    MacPortsでswftools@0.9.2を入れようとしたら失敗した - kanonjiの日記、MacPortsで入れる代わりに自前でビルドしたライブラリを使ってswftoolsをビルドしてみた - kanonjiの日記で、ビルドする時のライブラリについての知識が足りず困ったので、ちょっと調べてみました。基的にLinuxについて調べてて、Macについても分かったところがあるって感じです。 ちゃんとまとめるほど理解出来てるわけじゃないので、分かった事を並べる感じで書きます。勘違いしてたり、ちょっと用語がおかしかったりするかもしれません。 LinuxMacでは仕組みが違う LinuxではELF(Executable and Linking Format)という実行ファイルフォーマットがあって、この辺を調べていくとよくELFという単語を見かけます。 Macはというと、Mach-Oという実

    .soや.dylibや.aファイル、共有ライブラリなどについて調べてみた - kanonji’s diary
    akatakun
    akatakun 2016/09/08
    .a: Static Library,.so: Shared LIbrary(Dynamic Linking, Dynamic Loading): プログラムの実行時にロードされる,Dynamic Linking: 動的リンクして使うSharad Library,Dynamic Loading(Dynamic Library): 動的ローディングして使うShared Library
  • 1