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 つのパラダイムの使用

推薦する

Win Server 2019 サーバーの IIS 構成と Web サイトの簡単な公開

1.まずサーバーにリモート接続する2. サーバーマネージャーを開く 3役割と機能の追加 4サーバープ...

さまざまなブラウザに対応するためにCSSで指定フォント@font-faceを導入する際の問題

Web ページを作成するときに、特定のフォントを使用したい場合は、 @font-faceを介して参照...

Centos7 に yum 経由で MySQL をインストールする方法

1. MySQLがインストールされているかどうかを確認する yum インストール済みリスト | gr...

HTMLでのフォーム送信の実装

フォーム送信コード1. ソースコード分析 <!DOCTYPE html> <htm...

MySQL の 3 つの Binlog 形式の概要と分析

1つ。 Mysql Binlog フォーマットの紹介 Mysql binlog ログには、State...

Windows Server 2008 R2 に MySQL 5.7.10 をインストールする手順

MSIインストールパッケージを使用してインストールするご使用のオペレーティング システムに応じて、対...

CSSを使用して複数の画像を中央に水平に表示する方法

まず実装手順について説明します。最終結果 2. コードの実装HTML部分 <div class...

HTML で自動ページジャンプを実現する 5 つの方法

前回の記事では、HTML ページが 3 秒後に自動的にジャンプする一般的な 3 つの方法を紹介しまし...

MySQL の乗算と除算の精度の不一致の問題 (除算後の小数点以下 4 桁)

質問今日、プロジェクト関数を書いていたとき、金額の統計計算を行い、単位を変換する必要がありました。そ...

DockerでLinuxシェルコマンドを実行する方法

Docker でシェル コマンドを実行するには、コマンドの前に sh -c を追加する必要があります...

ウェブサイトの画像にグレー効果を加える3つの方法

私はグレースケールの画像の方が芸術的に見えると思うので、いつもグレースケールの画像を好んで使っていま...

Reactのコンポーネント共同利用実装

目次ネスティング親子コンポーネント通信ブラザーコンポーネント通信撤回するReact の Linked...

Linux でソースインストールされたパッケージを簡単に削除する方法

ステップ1: Stowをインストールするこの例では CentOS を使用しているため、拡張 EPEL...

MySQL 8.0.11 圧縮バージョンを Windows 10 にインストールするための詳細なチュートリアル

最近コンピュータを再インストールした後、最新バージョンのみをインストールするという強迫観念に基づいて...

TypeScriptはvscodeを使用してコードのコンパイルプロセスを監視します

インストールtsコマンドをグローバルにインストールする npm install -g typescr...