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 5.7 における基本的な JSON 操作ガイド

序文プロジェクトのニーズにより、ストレージ フィールドは JSON 形式で保存されます。プロジェクト...

要素の水平方向の中央揃えを実現する3つの方法と、固定レイアウトとフローレイアウトの概念の理解

CSS でテキストを中央揃えにするプロパティは非常に簡単に実現できます。text-align:cen...

UTF-8 ファイルの Unicode 署名 BOM (バイト オーダー マーク) の問題

最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...

Vueでフォーム検証を実装する方法

1. インストールと使用まず、Vue プロジェクトにインストールします。 npm インストール --...

Win10 システムに MySQL8.0.13 をインストールする際の問題と解決策

オペレーティングシステム: Windows10 MySQL バージョン: 8.0.13-winx64...

MySQLのタイムゾーンを表示および設定する方法

1. データベースのタイムゾーンを確認する '%time_zone' のような変数を...

JavaScript でよく使われる 5 つのオブジェクト

目次1. JavaScript オブジェクト1).配列オブジェクト2).ブールオブジェクト3).日付...

Centos7サーバーの基本的なセキュリティ設定手順

pingスキャンをオフにする(役に立たないが)まずルートに切り替えるエコー 1 > /proc...

MySQLデータベースが予期せずクラッシュし、テーブルデータファイルが破損して起動できなくなる問題を解決します。

問題: MySQL データベースが予期せずクラッシュしたため、データベースを起動できませんでした。エ...

マウスの尾行効果を実現する JavaScript

マウス効果では、setTimeout を使用して固定時間にノードを生成し、ノードを削除し、生成された...

Bootstrap 3.0 学習ノート CSS関連補足

この記事の主な内容は次のとおりです。 1. ブラウザのサポート2. 画像3. レスポンシブツール4....

Linux クラウド サーバーに JDK と Tomcat をインストールするための詳細な手順 (推奨)

JDKをダウンロードしてインストールするステップ 1: まず、公式 Web サイト http://...

Spring Cloud での Docker デプロイメントに jib を使用する詳細な手順

ジブの紹介Jib は Google が開発した、Java アプリケーションの Docker および ...

MySQLの比較演算子正規表現マッチングREGEXPの使用の詳細な説明

1. データを初期化する `test_01` が存在する場合はテーブルを削除します。 テーブル「te...