Loose-Info.com
Last Update 2021/12/20
TOP - 各種テスト - gcc - -l オプション

-lライブラリ
リンク時に libライブラリ.so、libライブラリ.aを検索

テスト概要

-lオプションを使用してコンパイル

実行環境

GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1


コード例・出力内容中の表記

・実行例中の太字表記部分は、コマンドなどの入力された文字列を示します。
・「」や「...」の着色省略表記は、 実際のソースコードや出力内容などを省略加工した部分を示します。

使用ファイル

sample.h
#ifndef SAMPLE_H #define SAMPLE_H #include <stdio.h> #include "func.h" #endif /* SAMPLE_H */

sample.c
#include "sample.h" int main(void) { printf("sample\n"); sampFunc(); return 0; }

func.h
#ifndef FUNC_H #define FUNC_H #include <stdio.h> void sampFunc(void); #endif /* FUNC_H */

func.c
#include "func.h" void sampFunc(void) { printf("func\n"); }

動作テスト

func.cを共有ライブラリとしてコンパイル
$ gcc -shared -o libsamplefunc.so -fPIC func.c $ 共有ライブラリを「libsamplefunc.so」として生成

共有ライブラリを利用するsample.cをコンパイル
テスト環境で実行するため、-Lオプション、およびリンカを対象とする-rpathオプションを利用して、 リンク時と実行時のライブラリへのパスをカレントディレクトリに設定
着色部(青)は-lオプション
$ gcc -L. -Wl,-rpath,. -o sample sample.c -lsamplefunc -lオプションによりlibsamplefunc.soを検索対象として指定 $ ./sample sample func $