なんだかGoodVibes

日々の勉強メモです。

【C】[超入門] 静的ライブラリを作成する

こんにちは。
本日は、C言語メモです。

概要

C言語の静的ライブラリの作成と
静的ライブラリのリンクを方法について記載します。

動作環境はMacです。


静的ライブラリの作成とリンク

以下のディレクトリ構成とします。

include
 ┗ calc.h
static
 ┗ calc_sum.c
myapp
 ┗ main.c

各ファイルの内容は以下です。

  • calc.h
#ifndef CALC_H
#define CALC_H

extern void sum(int num1, int num2);

#endif // CALC_H
  • calc_sum.c
#include <stdio.h>

void sum(int num1, int num2) {
    int result = 0;
    result = num1 * num2;

    printf("%d * %d = %d\n", num1, num2, result);
}
  • main.c
#include "calc.h"

int main() {

    sum(100, 200);
    return 0;
}
静的ライブラリの作成

static配下のソースから静的ライブラリを作成します。

$ gcc -c calc_sum.c
$ ls
calc_sum.c calc_sum.o
$ ar r libmyapp.a calc_sum.o
ar: creating archive libmyapp.a
$ ls
calc_sum.c calc_sum.o libmyapp.a
静的ライブラリをリンクする

myapp配下のソースをコンパイルして先ほど作成した
静的ライブラリをリンクします。

$ gcc -c main.c -I../include
$ ls
main.c         main.o
$ gcc -o main main.o -I../include -L../static -lmyapp
$ ls
main           main.c         main.o
$ ./main 
100 * 200 = 20000



以上です。