こんにちは。
本日は、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
以上です。