Linuxでmakeコマンドを使う方法
make の仕組み
その背後にある仕組みを知らない人のために説明すると、make コマンドはコマンド ライン引数と同じようにターゲットを受け入れます。これらのターゲットは通常、「makefiles」という名前の特別なファイルに保存され、ファイルにはターゲットに対応する操作も含まれています。詳細については、Makefile の仕組みに関するこの一連の記事を参照してください。
make コマンドが初めて実行されると、makefile がスキャンされてターゲットとその依存関係が検索されます。これらの依存関係自体がターゲットである場合は、これらの依存関係のメイクファイルのスキャンを続けて依存関係を確立し、コンパイルします。主要な依存関係がコンパイルされると、次にメイン ターゲットがコンパイルされます (これは make コマンドを通じて渡されます)。
ここで、あるソース ファイルを変更した後、再度 make コマンドを実行すると、そのソース ファイルに関連するターゲット ファイルのみがコンパイルされるため、最終的な実行可能ファイルをコンパイルすると大幅なコストが節約されます。時間。
make コマンドの例
この記事で使用したテスト環境は次のとおりです:
os —— ubunut 13.04 shell —— bash 4.2.45 application —— gnu make 3.81
プロジェクトの内容は次のとおりです:
$ ls anothertest.c makefile test.c test.h
以下は makefile の内容です:
all: test test: test.o anothertest.o gcc -wall test.o anothertest.o -o test test.o: test.c gcc -c -wall test.c anothertest.o: anothertest.c gcc -c -wall anothertest.c clean: rm -rf *.o test
次に、Linux での make コマンド アプリケーションの例をいくつか見てみましょう:
1. 簡単な例
##プロジェクト全体をコンパイルするには、単に make を使用するか、make コマンドの後にターゲット all を指定して実行するだけです。$ make gcc -c -wall test.c gcc -c -wall anothertest.c gcc -wall test.o anothertest.o -o test
$ ls anothertest.c anothertest.o makefile test test.c test.h test.o
$ make gcc -c -wall test.c gcc -wall test.o anothertest.o -o test
$ make clean rm -rf *.o test $ ls anothertest.c makefile test.c test.h
2. -b オプションを渡すと、すべてのターゲットが常にリビルドされるようになります
もうお気づきかもしれませんが、make コマンドは、以前に作成されたターゲットをコンパイルしません。最後のビルド以降にコンパイルされました。変更されたファイルはありませんが、make のデフォルトの動作をオーバーライドしたい場合は、-b オプションを使用できます。 以下は例です:$ make make: nothing to be done for `all'. $ make -b gcc -c -wall test.c gcc -c -wall anothertest.c gcc -wall test.o anothertest.o -o test
3. デバッグ情報を出力するには、-d オプションを使用します。
make の実行時に実際に何を行うかを知りたい場合は、-d オプションを使用します。 これは例です:$ make -d | more gnu make 3.81 copyright (c) 2006 free software foundation, inc. this is free software; see the source for copying conditions. there is no warranty; not even for merchantability or fitness for a particular purpose. this program built for x86_64-pc-linux-gnu reading makefiles… reading makefile `makefile'… updating makefiles…. considering target file `makefile'. looking for an implicit rule for `makefile'. trying pattern rule with stem `makefile'. trying implicit prerequisite `makefile.o'. trying pattern rule with stem `makefile'. trying implicit prerequisite `makefile.c'. trying pattern rule with stem `makefile'. trying implicit prerequisite `makefile.cc'. trying pattern rule with stem `makefile'. trying implicit prerequisite `makefile.c'. trying pattern rule with stem `makefile'. trying implicit prerequisite `makefile.cpp'. trying pattern rule with stem `makefile'. --more--
4. -c オプションを使用してディレクトリを変更します
make コマンドに別のディレクトリ パスを指定すると、ディレクトリを検索する前に切り替えられます。メイクファイル。 これは、現在のディレクトリにいると仮定した場合のディレクトリです:$ ls file file2 frnd frnd1.cpp log1.txt log3.txt log5.txt file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt
$ make -c ../make-dir/ make: entering directory `/home/himanshu/practice/make-dir' make: nothing to be done for `all'. make: leaving directory `/home/himanshu/practice/make-dir
5. 他のファイルをメイクファイルとして扱うには、-f オプションを使用します。
メイクファイル ファイルの名前 (my_makefile または他の名前など) を変更したい場合は、 make でそれを makefile として扱うには、-f オプションを使用します。make -f my_makefile
以上がLinuxでmakeコマンドを使う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Centosは廃止されました、代替品には次のものが含まれます。1。RockyLinux(最高の互換性)。 2。アルマリン(Centosと互換性); 3。Ubuntuサーバー(設定が必要); 4。RedHat Enterprise Linux(コマーシャルバージョン、有料ライセンス); 5。OracleLinux(CentosとRhelと互換性があります)。移行する場合、考慮事項は次のとおりです。互換性、可用性、サポート、コスト、およびコミュニティサポート。

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

CentOSが停止した後、ユーザーは次の手段を採用して対処できます。Almalinux、Rocky Linux、Centosストリームなどの互換性のある分布を選択します。商業分布に移行する:Red Hat Enterprise Linux、Oracle Linuxなど。 Centos 9ストリームへのアップグレード:ローリングディストリビューション、最新のテクノロジーを提供します。 Ubuntu、Debianなど、他のLinuxディストリビューションを選択します。コンテナ、仮想マシン、クラウドプラットフォームなどの他のオプションを評価します。

障害のあるDocker画像ビルドのトラブルシューティング手順:DockerFileの構文と依存関係バージョンを確認します。ビルドコンテキストに必要なソースコードと依存関係が含まれているかどうかを確認します。エラーの詳細については、ビルドログを表示します。 -targetオプションを使用して、階層フェーズを構築して障害点を識別します。 Dockerエンジンの最新バージョンを使用してください。 -t [image-name]:デバッグモードで画像を作成して、問題をデバッグします。ディスクスペースを確認し、十分であることを確認してください。 Selinuxを無効にして、ビルドプロセスへの干渉を防ぎます。コミュニティプラットフォームに助けを求め、DockerFilesを提供し、より具体的な提案のためにログの説明を作成します。

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)
