前回の記事では、Windows下のプログラムの分類、コンパイラ、コネクタ、共通ヘッダファイル、ライブラリファイル、その他の知識を紹介しました。システム。この記事では、プログラムのコンパイルプロセスについて説明します。
ソース コードのコンパイル プロセスが 2 つのステップに分かれていることは誰もが知っていると思います。1 つはコンパイル プロセスで、主な仕事はソース コードを中間ファイル (windows では cl) に変換することです。 exe の役割は、.c ファイルまたは .cpp ファイルを中間 .obj ファイルに変換することです。2 番目は接続プロセスであり、主な仕事はさまざまな中間ファイルを変換することです。ファイルとライブラリ ファイル接続は実行可能ファイルを生成します。これは、windowsのlink.exeの役割であり、.objファイルとライブラリファイルをexeプログラムにリンクします。
この記事では主に、VSのIDEを削除し、コマンドラインを使用してcl.exeとlink.exeでプログラムをコンパイルおよびリンクする方法を説明します。 。
まず、新しいtest.txtファイルを作成し、それからそのファイル名をtext.cに変更します。次のコードを入力します:
#include "windows.h" int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { MessageBox(NULL,"Hello Win32","sdk",MB_ABORTRETRYIGNORE|MB_ICONERROR); return 0; }#include "windows.h"
は、windows システムで必要なすべてのヘッダー ファイルをインポートします。次に、windowsウィンドウプログラムのメイン関数wWinMainを導入しました。 Winmainの各仮パラメータの役割を簡単に説明します: hInstanceは現在のプログラムのインスタンスハンドルであり、現在のプログラムのメモリ位置です。現在のプログラムのインスタンス ハンドル。現在はすでに廃止されています。lpCmdLine はコマンド ライン パラメーターです。つまり、コマンド ラインからプログラムを実行するときに、パラメーターとしていくつかの strings を含めることができます。はウィンドウの表示方法であり、最大化または最小化します。 main 関数で MessageBox を呼び出してモーダル ダイアログ ボックスを定義しました。コンパイルが成功すると、プログラムの実行後にダイアログ ボックスが表示されます。 Test.c ファイルが作成されたので、次に行う必要があるのは、ファイルを個別にコンパイルしてリンクすることです。
三Compile Test.c
をコンパイルします。テスト。c ファイル: Cl.exe /c test.c コンパイルが完了すると、test.obj中間ファイルが作業ディレクトリに生成されます:
コマンドラインプロンプトでcl.exeコマンドなどが見つからない場合情報として、これは環境変数 に cl.exe が導入されていないディレクトリであることを理解していただけると思います。最初に環境変数を追加することも、フルパスを使用して環境変数を導入することもできます。 test.obj ファイルを生成した場合は、コンパイルプロセスが完了し、接続プロセスを開始できることを意味します。 このライブラリには、必要なユーザー インターフェイスとメッセージ関連の API が含まれていると説明しました。ファイル test.exe が作業ディレクトリに生成されるはずです: この IDE を使用してVSから完全に分離され、カスタムダイアログボックスが生成されています。素晴らしいと思いませんか?ここにはシャオ・ユエユエの意地悪な表現があるはずです。 。 。 リンクの生成test.exe
次に、次のコマンドを実行して実行可能ファイルを生成します: Link.exe test.obj user32.lib User32 .lib
exe をダブルクリックすると、定義したダイアログ ボックスがポップアップします:
OK、テストは終わりました。インターフェース
以上がWin32 SDKの基礎(2) cl.exeとlink.exeのコンパイル・リンク手順を詳しく解説(画像)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。