ホームページ 運用・保守 Linuxの運用と保守 Linuxのmakeコマンドとは何ですか?

Linuxのmakeコマンドとは何ですか?

Mar 25, 2023 am 09:14 AM
linux make

Linux の make コマンドは、システム管理者やプログラマーによって最も頻繁に使用されるコマンドの 1 つです。また、「自動コンパイル マネージャー」も指します。「自動」とは、ファイルのタイムスタンプを自動的に検出して追跡できることを意味します。 . 新しいファイルを作成して作業負荷を軽減すると同時に、メイクファイル ファイルの内容を読み取ることで大量のコンパイル作業を実行できます。

Linuxのmakeコマンドとは何ですか?

#このチュートリアルの動作環境: linux5.9.8 システム、Dell G3 コンピューター。

Linux の make コマンドとは何ですか?

Linux での make コマンドは、システム管理者やプログラマーが最も頻繁に使用するコマンドの 1 つです。管理者はこれを使用して、コマンド ラインを介して多くのオープン ソース ツールをコンパイルおよびインストールし、プログラマーは大規模で複雑なプロジェクトのコンパイルの問題を管理するために使用します。

1. make 構文の利点

make プロジェクト マネージャーは「自動コンパイル マネージャー」です。ここでの「自動」とは、ファイルに基づいて実行できることを意味します。更新されたファイルを自動的に検出して作業負荷を軽減すると同時に、メイクファイル ファイルの内容を読み取ることで大量のコンパイル作業を実行します。ユーザーは簡単なコンパイル ステートメントを 1 回使用するだけで済み、プロジェクトの実際の効率が大幅に向上します。

まずケースを想像してみましょう。実行可能ファイルに 4 つのソース コード ファイル、つまり main.c haha​​.c sin_value.c cos_value.c が含まれているとします。このプログラムは実行できるため、実行する必要があります。このようにコンパイルされました。

[root@linux ~]# gcc -c main.c 
[root@linux ~]# gcc -c haha.c 
[root@linux ~]# gcc -c sin_value.c 
[root@linux ~]# gcc -c cos_value.c 
# 先以上面的动作制作出四个目标文件,然后再进行下面的动作: 
 
[root@linux ~]# gcc -o main main.o haha.o sin_value.o cos_value.o \ 
> -lm -L/usr/lib -L/lib 
# 这样就可以制作出  main 这个执行档啰!执行看看吧! 

[root@linux ~]# ./main 
HaHa! I'm the King of the world 0.706825 0.707388
ログイン後にコピー

可能であれば、上記のすべての操作を 1 つのステップで完了できますか?次の内容の makefile をこのディレクトリに作成してみてください:

# 1. 先建立编译的规则 
[root@linux ~]# vi makefile 
main: main.o haha.o sin_value.o cos_value.o 
 gcc -o main main.o haha.o sin_value.o cos_value.o -lm 
# 注意:第二行的 gcc 之前是 <tab> 按键产生的空格喔! 
 
# 2. 尝试给他建立规则看看 
[root@linux ~]# rm -f main *.o   <==先将之前的目标文件去除 
[root@linux ~]# make 
cc    -c -o main.o main.c 
cc    -c -o haha.o haha.c 
cc    -c -o sin_value.o sin_value.c 
cc    -c -o cos_value.o cos_value.c 
gcc -o main main.o haha.o sin_value.o cos_value.o -lm 
# 这个时候 make 会主动去读取 makefile 这个档案的内容, 
# 并根据内容直接去给他编译起相关的执行档啰! 
 
# 3. 如果再执行一次 make 会怎样?! 
[root@linux ~]# make 
make: `main' is up to date. # 看到了吧?!是否很方便呢?!
ログイン後にコピー

make には次の利点があります:
• コンパイル中に発行する必要がある命令を簡素化します;

• コンパイルの完了後にソース コード ファイルが変更された場合、make は変更されたファイルのみをコンパイルし、他のオブジェクト ファイルは変更されません;

• その後、ソース コード ファイルを更新 (更新) することができます。実行可能ファイル。

2. make の基本構文

make の基本ルールは次のとおりです:

目标(target): 依赖条件 1 依赖条件 2 <tab>   gcc -o 欲建立的执行文件 依赖条件 1 依赖条件 2
ログイン後にコピー

makefile には 3 つの要素が含まれます: ターゲット、依存関係、コマンド。 Makefile には最終ゴールが 1 つだけあり、他のすべてのゴールはこのゴールに依存します。

ターゲットは作成したい情報、依存関係の条件は関連するオブジェクト ファイルです。実行可能ファイルを作成するための構文は、 ボタンで始まる行です。 「コマンド ラインは Tab キーで始める必要がある」という点に特に注意してください。彼のルールは基本的に次のとおりです:

• メイクファイル内の # はコメントを表します;

はコマンド ラインの最初の文字である必要があります;

• ターゲット (target) と依存ファイル (つまり、ターゲット ファイル) は、「:」で区切る必要があります。

システムのデフォルトの自動化変数を使用して、makefile 内のコマンドを簡素化できます:

$^:代表所有的依赖条件。
$@:代表目标文件
$<:代表一个目标文件
ログイン後にコピー

推奨学習: 「linux ビデオ チュートリアル

以上がLinuxのmakeコマンドとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

rootとしてmysqlにログインできません rootとしてmysqlにログインできません Apr 08, 2025 pm 04:54 PM

ルートとしてMySQLにログインできない主な理由は、許可の問題、構成ファイルエラー、一貫性のないパスワード、ソケットファイルの問題、またはファイアウォール傍受です。解決策には、構成ファイルのBind-Addressパラメーターが正しく構成されているかどうかを確認します。ルートユーザー許可が変更されているか削除されてリセットされているかを確認します。ケースや特殊文字を含むパスワードが正確であることを確認します。ソケットファイルの許可設定とパスを確認します。ファイアウォールがMySQLサーバーへの接続をブロックすることを確認します。

c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション c言語条件付き編集:初心者向けの詳細なガイドへの実践的なアプリケーション Apr 04, 2025 am 10:48 AM

c言語条件付きコンパイルは、コンパイル時間条件に基づいてコードブロックを選択的にコンパイルするメカニズムです。導入方法には、#IFおよび#ELSEディレクティブを使用して、条件に基づいてコードブロックを選択します。一般的に使用される条件付き式には、STDC、_WIN32、Linuxが含まれます。実用的なケース:オペレーティングシステムに従って異なるメッセージを印刷します。システムの数字数に応じて異なるデータ型を使用します。コンパイラに応じて、異なるヘッダーファイルがサポートされています。条件付きコンパイルにより、コードの移植性と柔軟性が向上し、コンパイラ、オペレーティングシステム、CPUアーキテクチャの変更に適応できます。

Linuxの5つの基本コンポーネントは何ですか? Linuxの5つの基本コンポーネントは何ですか? Apr 06, 2025 am 12:05 AM

Linuxの5つの基本コンポーネントは次のとおりです。1。カーネル、ハードウェアリソースの管理。 2。機能とサービスを提供するシステムライブラリ。 3.シェル、ユーザーがシステムと対話するインターフェイス。 4.ファイルシステム、データの保存と整理。 5。アプリケーション、システムリソースを使用して機能を実装します。

MySQLを解決する方法は開始できません MySQLを解決する方法は開始できません Apr 08, 2025 pm 02:21 PM

MySQLの起動が失敗する理由はたくさんあり、エラーログをチェックすることで診断できます。一般的な原因には、ポートの競合(ポート占有率をチェックして構成の変更)、許可の問題(ユーザー許可を実行するサービスを確認)、構成ファイルエラー(パラメーター設定のチェック)、データディレクトリの破損(テーブルスペースの復元)、INNODBテーブルスペースの問題(IBDATA1ファイルのチェック)、プラグインロード障害(エラーログのチェック)が含まれます。問題を解決するときは、エラーログに基づいてそれらを分析し、問題の根本原因を見つけ、問題を防ぐために定期的にデータをバックアップする習慣を開発する必要があります。

MySQLはAndroidで実行できますか MySQLはAndroidで実行できますか Apr 08, 2025 pm 05:03 PM

MySQLはAndroidで直接実行できませんが、次の方法を使用して間接的に実装できます。Androidシステムに構築されたLightWeight Database SQLiteを使用して、別のサーバーを必要とせず、モバイルデバイスアプリケーションに非常に適したリソース使用量が少ない。 MySQLサーバーにリモートで接続し、データの読み取りと書き込みのためにネットワークを介してリモートサーバー上のMySQLデータベースに接続しますが、強力なネットワーク依存関係、セキュリティの問題、サーバーコストなどの短所があります。

特定のシステムバージョンでMySQLが報告したエラーのソリューション 特定のシステムバージョンでMySQLが報告したエラーのソリューション Apr 08, 2025 am 11:54 AM

MySQLのインストールエラーのソリューションは次のとおりです。1。システム環境を慎重に確認して、MySQL依存関係ライブラリの要件が満たされていることを確認します。異なるオペレーティングシステムとバージョンの要件は異なります。 2.エラーメッセージを慎重に読み取り、依存関係のインストールやSUDOコマンドの使用など、プロンプト(ライブラリファイルの欠落やアクセス許可など)に従って対応する測定値を取得します。 3.必要に応じて、ソースコードをインストールし、コンパイルログを慎重に確認してみてください。これには、一定量のLinuxの知識と経験が必要です。最終的に問題を解決する鍵は、システム環境とエラー情報を慎重に確認し、公式の文書を参照することです。

MySQLはダウンロード後にインストールできません MySQLはダウンロード後にインストールできません Apr 08, 2025 am 11:24 AM

MySQLのインストール障害の主な理由は次のとおりです。1。許可の問題、管理者として実行するか、SUDOコマンドを使用する必要があります。 2。依存関係が欠落しており、関連する開発パッケージをインストールする必要があります。 3.ポート競合では、ポート3306を占めるプログラムを閉じるか、構成ファイルを変更する必要があります。 4.インストールパッケージが破損しているため、整合性をダウンロードして検証する必要があります。 5.環境変数は誤って構成されており、環境変数はオペレーティングシステムに従って正しく構成する必要があります。これらの問題を解決し、各ステップを慎重に確認して、MySQLを正常にインストールします。

mysqlをインストールするときに依存関係が欠落の問題を解決する方法 mysqlをインストールするときに依存関係が欠落の問題を解決する方法 Apr 08, 2025 pm 12:00 PM

MySQLのインストール障害は、通常、依存関係の欠如によって引き起こされます。解決策:1。システムパッケージマネージャー(Linux APT、YUM、DNF、Windows VisualC Redistributableなど)を使用して、sudoaptinStalllibmysqlclient-devなどの欠落している依存関係ライブラリをインストールします。 2.エラー情報を慎重に確認し、複雑な依存関係を1つずつ解決します。 3.パッケージマネージャーのソースが正しく構成され、ネットワークにアクセスできることを確認します。 4. Windowsの場合は、必要なランタイムライブラリをダウンロードしてインストールします。公式文書を読んで検索エンジンを適切に使用する習慣を開発することは、問題を効果的に解決することができます。

See all articles