Last Update 2021/12/26
-Lディレクトリ
-lオプションで検索するディレクトリのリストに、ディレクトリを追加
テスト概要
-Lオプションを使用したコンパイル例
実行環境
GCC-8.2.0
GNU C Library 2.28
GNU Binutils 2.31.1
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オプション
テスト環境で実行するため、-Lオプション、およびリンカを対象とする-rpathオプションを利用して、 リンク時と実行時のライブラリへのパスをカレントディレクトリに設定
着色部(青)は-Lオプション
$ gcc -L. -Wl,-rpath,. -o sample sample.c -lsamplefunc
-Lオプションにより-lオプションの検索対象ディレクトリにカレントディレクトリ「.」を追加
$ ./sample
sample
func
$