Linux で g++ を使用してプログラムをコンパイルする際の -I (大文字の i)、-L (大文字の l)、-l (小文字の l) の機能の詳細な説明

Linux で g++ を使用してプログラムをコンパイルする際の -I (大文字の i)、-L (大文字の l)、-l (小文字の l) の機能の詳細な説明

初心者の Linux ユーザーとして、私は単純なgcc/g++操作を何度も使用してきましたが、少し複雑なプログラムにはライブラリが使用されることもあります。問題に遭遇したとき、先人たちがまとめた情報をたくさん調べ、友人たちの役に立つことを願ってスクリプトを残しました。あなたの問題も解決できたらとても嬉しいです、笑。
例: libz.so

g++ -o 圧縮compress.cpp -I/home/include/ -L/lib/ -lz

(1) -I(大文字のi)

コンパイラは、-I で指定されたパスでヘッダー ファイルを検索します。

-I/home/include/-I/home/include/ディレクトリがヘッダー ファイルを検索する最初のディレクトリとして使用されることを意味します。検索順序は次のとおりです。

/home/include/ -->/usr/include -->/usr/local/include

(2)-L(大文字のl)

これは、コンパイラが -L で指定されたパスでライブラリ ファイルを検索することを意味します。通常、-L の後に -l を使用して複数のライブラリ ファイルを一度に指定できます。

-L/lib/ は /lib/ ディレクトリ内のライブラリファイルを検索することを意味します

(3)-l(小文字のl)

これは、コンパイラがシステムのデフォルト パスを検索することを意味します。ライブラリが見つからない場合は、現在のディレクトリを検索します。現在のディレクトリでライブラリが見つからない場合は、 LD_LIBRARY_PATHなどの環境変数の先頭に設定されているパスを検索します。それでもライブラリが見つからない場合は、コンパイラはライブラリが見つからないというメッセージを表示します。

この例では gunzip ライブラリを使用します。ライブラリ ファイル名は libz.so、ライブラリ名は z です。ライブラリ ファイル名の最初の lib と最後の .so を削除するとライブラリ名が得られることは簡単にわかります。

要約する

Linux で g++ プログラムをコンパイルする際の -I (大文字の i)、-L (大文字の l)、-l (小文字の l) の機能の詳細な説明に関するこの記事はこれで終わりです。Linux g++ コンパイラ プログラムに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Linux で g++ を使用して cpp プロジェクトをコンパイルする方法
  • Linux環境でg++を使用してC++をコンパイルする方法の概要
  • Linux で g++ を使用して静的および動的ライブラリをコンパイルして使用する方法
  • Linux環境でg++を使用してGDALダイナミックライブラリをコンパイルする方法
  • Linux C++コンパイラg++の基本的な使い方の詳細な説明

<<:  Vue で Baidu Map を呼び出して経度と緯度を取得する

>>:  MySQL データベースのデータ テーブルの最適化、外部キーの分析、3 つのパラダイムの使用

推薦する

MySQL SQL文の特殊処理文のまとめ(必読)

1.テーブル全体を更新します。データ行の列の値が空の場合は、別の列フィールドの値と同じにします。 ...

CSSは左固定と右適応のレイアウト方法を実現します

1. フローティングレイアウト1. 最初に固定幅の div をフロートさせます。ドキュメントフローか...

Vue3 ページ、メニュー、ルートの使用

目次1. メニューをクリックしてジャンプ1. ページ名の統一2. 管理ページを追加3. ルートを追加...

mysql8.0 でユーザーを作成して権限を付与する際のエラーの解決方法の詳細な説明

質問1:エラーを報告する書き込み方法: GRANT OPTION を使用して、'123123...

テーブルの4辺を上下左右にスクロールするように固定する方法

質問:最近、プロジェクトの統計を行っていたときに、テーブルを上下にスクロールしたときにテーブルの先頭...

MySQL Order By 複数フィールドのソートルールのコード例

事前に言っておく気まぐれですが、MySQL の order by sorting にどのようなルール...

Linux yum コマンドを使用して mysql8.0 をインストールする方法の詳細なチュートリアル

1. 設置前によく掃除する rpm -pa | grep mysql または rpm -qa | g...

Vueページジャンプの実装方法

1. this.$router.push() 1. ビュー <テンプレート> <d...

dockerネットワーク双方向接続の詳細な説明

Dockerネットワークを見るdocker ネットワーク ls [root@master ~]# d...

Nodejs 配列キューと forEach アプリケーションの詳細な説明

この記事では、Nodejs 開発プロセスで遭遇する配列の特性によって発生する問題と解決策、および配列...

Ubuntu 20.04でLNMP環境を構築する方法

簡単な説明以前 Centos7 で構築し、その後個人開発環境として Ubuntu 20.04 を使っ...

CocosCreatorで複数のタイマーを使用する方法の詳細な説明

1.タイムアウトを設定する3 秒後に abc を印刷します。一度だけ実行します。 setTimeou...

CentOS 7のインストールと設定方法のグラフィックチュートリアル

この記事は、CentOS 7の詳細なインストールチュートリアルを参考のために記録します。具体的な内容...

Ubuntu での CUDA と CUDNN のインストールとアンインストールの実装

目次序文グラフィックドライバーをインストールするCUDAをアンインストールするCUDAをインストール...