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カスタムリストのソートの実装

問題の説明ご存知のとおり、MySQL でフィールドを昇順に並べ替える SQL は次のとおりです (i...

廃止された Docker は Podman に置き換えられますか?

Kubernetes チームは最近、最新バージョンの Docker でサポートされている機能を廃止...

LinuxサーバのSSHクラッキング防止方法(推奨)

1. Linuxサーバーは、/etc/hosts.denyを設定して、相手のIPがSSH経由でサー...

Vueはカスタム命令を使用してページの下部に透かしを追加します

プロジェクトシナリオプロジェクトの背景全体にカスタム透かしを追加します。透かしのテキスト、フォントの...

ffmpeg コマンドラインを使用してビデオを変換するためのサンプルコード

この記事の本文を始める前に、まず ffmpeg プログラムをインストールする必要があります (Lin...

Navicat PremiumはMySQLデータベースを操作します(SQL文を実行します)

1. Navicatの紹介1. Navicat とは何ですか? Navicat は強力な MySQ...

ウェブページの画像を素早く表示する方法とテクニック

1. .jpg ではなく .gif を使用します。GIF は JPG に比べてサイズが小さくなります...

Vue-pdfはPDFファイルのオンラインプレビューを実装します

序文ほとんどのプロジェクトでは、PDF ファイルのオンライン プレビューに遭遇するでしょう。このプロ...

Linux で圧縮ファイルの内容を表示する 10 の方法 (要約)

一般的に、アーカイブされたファイルや圧縮されたファイルの内容を表示するには、まず解凍してから表示する...

FTP環境設定ソリューション(vsftpd)の詳細な説明

1. vsftpdコンポーネントをインストールするインストールコマンド: [root@ink4t ~...

TypeScript マッピング型の詳細

目次1. マップされた型2. マッピング修飾子3. キーの再マッピング4. さらなる探究序文: Ty...

Flexレイアウトとスケーリング計算についての簡単な説明

1. Flexレイアウトの紹介Flex は Flexible Box の略で、「柔軟なレイアウト」を...

JavaScript の条件付きアクセス属性と矢印関数の紹介

目次1. 条件付きアクセス属性2. アロー関数の紹介1. 条件付きアクセス属性?. は ES2020...

Vue ページ監視ユーザープレビュー時間機能実装コード

最近のビジネスでは、オンライン トレーニング システムが特定のオンライン プレビュー ページに対する...

中国語フォントの英語名まとめ

CSS の font-family プロパティを使用して中国語フォントを参照する場合、フォントを定義...