この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
技術チャット
›
GCC、CMake、CMakelist、Make、Makefile、Ninja...
眺める:
2340
|
答える:
1
GCC、CMake、CMakelist、Make、Makefile、Ninjaの紹介
[リンクをコピー]
クズども
掲載地 2024/07/09 20:44:28
|
|
|
1. GCCの誕生!
1985年、指が見えない暗い夜、ひげを生やし、背が低く、髪が乱れた奇妙な男がC言語コンパイラのセットを作り始めました。 このエフォニーは後に「最高のプログラマー」や「フリーソフトウェアの父」として知られるリチャード・ストールマンでした。 2年間の努力の末、リチャード・ストールマンは、長いひげと乱れた髪を持つ彼が、GNU C Complierと呼ぶCコンパイラの最初のバージョンを完成させました。これが現在、有名なGCCのソースとなっています。 その後、GCCは急速に発展し、現在ではC言語だけでなく、C++、Fortran、Pascal、Objective-C、Java、Adaなどの言語もコンパイルできるようになりました。 20世紀の80年代から90年代には、パーソナルコンピュータのCPU周波数、ハードディスクサイズ、メモリサイズはすべてMBやKB単位で測定され、コンパイルすべきプログラムファイル数は少なく、GCCコマンドで十分でした。
次に、新たな問題が現れた! (makeとmakefile)
コンピュータ性能の向上と普及に伴い、Linuxのようなソフトウェアプロジェクトにはますます多くのソースファイルが含まれており、これは混乱しやすく、作業負荷も高く、混乱しやすく、人を狂わせることもあります。
リチャード・ストールマンとローランド・マグラスは、この問題を解決するためにメイク&メイファイル(Make and Makefile)を共同開発しました。 メイクツールはインテリジェントなバッチ処理ツールと見なせます。コンパイルやリンクの機能は持たず、バッチ処理に似た方法を用いています。つまり、ユーザーがメイクファイル内で指定したコマンドを呼び出す方法です。 メイクファイルとは何ですか? メイクファイルはスクリプトファイルで、単純に曲の楽譜のようなもので、メイクツールは指揮者のような役割を果たし、指揮者はオーケストラ全体にスコアに従って演奏するよう指示し、メイクツールはメイクファイルのコマンドに従ってコンパイル・リンクされます。 makefileコマンドには、gcc(または他のコンパイラ)を呼び出してソースファイルをコンパイルするコマンドが含まれています。
3. また新たな問題が起きた! (CmakeとCMakelist)
メイクファイルは簡単なプロジェクトでは手書きで書くこともできますが、プロジェクトが非常に大きい場合、手作業でメイクファイルを書くのも非常に面倒です。 また、GNU make、QTのqmake、MicrosoftのMSnmake、BSD Make(pmake)、Makeppなど、さまざまなプラットフォーム向けのmakeファイルが次々と登場しています。 これらのMakeツールは異なる仕様や規格に従い、Makefile形式も大きく異なります。 これは深刻な問題を生み出します。ソフトウェアがクロスプラットフォームでありたいなら、異なるプラットフォームでコンパイルできなければなりません。 上記のMakeツールを使うと、各標準ごとにmakefileを書かなければならず、これは大変な作業になります。プラットフォームのmakefileを変更すると、再度修正しなければなりません。
この時点でCmakeというツールが登場し、Cmakeは上記のMakeのファイルファイルをより簡単に生成できます。 もちろん、cmakeには他にも機能があり、対応するプラットフォーム上で使えるmakeファイルを生成でき、自分で修正する必要はありません。 cmakeはMakeファイルの上位層であり、その目的はポータブルなmakefileを作成し、自分でmakefileを書く膨大な作業を簡素化することです。 では、cmakeは何を使ってメイクファイルを生成するのでしょうか? また、CMakeLists.txtファイル(学名:configuration file)というファイルに基づくメイクファイルを生成する必要があります。 結局CMakeLists.txt誰が文書を書くのか? もちろん、あなた自身が書いたのです。
第四に、新たなトラブルが再び現れました! (忍者)
ソフトウェアエンジニアリングが大きく複雑になるにつれて、制作の実行速度の遅さの問題はますます深刻になっています。
その結果、Googleのプログラマーがスピード重視のビルドツール「Ninja」を立ち上げました。 Ninjaには高度な機能がすべてあるわけではなく、構文や使い方も非常にシンプルで、何をすべきかを詳細に指定しているため、コンパイルが非常に速く始まります。 実際のテストによると、3万以上のソースファイルを持つことで、実際のビルドを1秒で開始することも可能です。 対照的に、シニアエンジニアが書いたMakefilesも構築開始に10〜20秒かかります。
5. これまでの完璧な結末!
Cmakeは.ninjaや.makefileのツールを生成できます。 多くの人がmakefileファイルやninjaファイルの書き方に慣れていないため、cmakeはソースコードファイル(つまりCMakeLists.txtファイル)の簡単な説明だけで自動的にプロジェクトmakefileファイルやninjaファイルを生成し、その後ninjaやmakeでコンパイルを始められます。
make/makefile/cmake/nmake を理解するために5分
最近、あなたは「make」「cmake」「makeファイル...」 こうしたことはめまいがするもので、以下の記事を見てください。もしかしたらはっきり理解できるかもしれません。
1. GCC
これはGNUコンパイラコレクション、または単にコンパイラであり、C、C++、Objective-C、Fortran、Javaなど多くのプログラミング言語をコンパイルできます。
プログラムにソースファイルが1つだけある場合は、gccコマンドで直接コンパイルできます。
しかし、もし私たちのプログラムには多くのソースファイルが含まれているとしたらどうでしょうか? gccコマンドを一つずつコンパイルすると混乱しやすく、作業がかかるため、次の作成ツールが表示されます。
2. 作る
メイクツールはインテリジェントなバッチ処理ツールと見なせます。コンパイルやリンクの機能は持たず、バッチ処理に似た方法を用いています。つまり、ユーザーがメイクファイル内で指定したコマンドを呼び出す方法です。
3. 制作ファイル
これは、何ですか。
簡単に言えば、曲の楽譜と同じように、メイクツールは指揮者のようなもので、指揮者はオーケストラ全体にスコアに従って演奏するよう指示し、メイクツールはメイクファイルのコマンドに従ってコンパイルやリンクを行います。 makefileコマンドには、gcc(または他のコンパイラ)を呼び出してソースファイルをコンパイルするコマンドが含まれています。
簡単なプロジェクトでは手動でメイクファイルを取得することもできますが、プロジェクトが非常に大きい場合、手書きのメイクファイルは非常に手間がかかります。
4. cmake
cmakeは上記のMakeファイルのファイルを簡単に生成できます。 もちろん、cmakeには他にもより良い機能があり、対応するプラットフォーム上で使用可能なmakeファイルを生成できるため、自分たちで修正する必要はありません。
では、cmakeは何を使ってメイクファイルを生成するのでしょうか? また、CMakeLists.txtファイル(学名:configuration file)というファイルに基づくメイクファイルを生成する必要があります。
5. CMakeList.txt
結局CMakeLists.txt誰が文書を書くのか? 親愛なる、それはあなたの手で書いたものです。
6. nmake(まま)
nmakeとは何ですか?
nmakeはMicrosoft Visual Studioのサイドコマンドで、VSをインストールする必要があります。VSは実際にはLinuxのMakeと同等と言えます。わかりますか?
転属先:
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。
ハイパーリンクのログインが見えます。
先の:
ERP キングディー クラウド スターリースカイ (1) シンプルな理解
次に:
Rocky Linux 9のパッケージが見つかりません:argumentに一致なし:xxx
関連記事
•
Beyond Compare 5(BC5)プロフェッショナルエディションライセンス購入チュートリアル
•
MikroTik (7) Alibaba Cloud Server インストール RouterOS v7 CHR
•
MikroTik(6) RouterOS購入ライセンスキー
•
MikroTik(5)RouterBOARDファームウェアアップグレード
•
UDPプロトコルを使用したWindows 11リモートデスクトップのスタッター問題
•
Visual Studio 2026(VS 2026)エンタープライズエディションのダウンロードおよびインストールチュートリアル
•
.NET/C# は .NET SDK と .NET CLI テレメトリをオフにします
•
Charles Proxyはlocalhost、127.0.0.1のネイティブトラフィックをクロールできません
•
MCP(1) モデルコンテキストプロトコル入門チュートリアル
•
. NET6における優先度キュー
クズども
地主
|
掲載地 2024/12/08 8:57:06
|
MinGWはWindows向けにシンプルで便利なGCCベースのプログラム開発環境を提供します。 MinGWは、Windowsで使える無料のヘッダーおよびライブラリファイルのコレクションを収集しています。 また、GNU(
http://www.gnu.org/
) ツール、特にクラシックな gcc、g++、makeなどのGNU開発ツールが使われています。 MinGWは完全にフリーソフトウェアであり、Windowsプラットフォーム上でLinux上でGCC開発環境をシミュレートし、C++のクロスプラットフォーム開発の基礎的なサポートを提供し、Windows上で作業するプログラマーがLinux上のC++エンジニアリング組織に慣れる条件を提供します。
閲覧したセクション
Windows/Linux
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com