1. gccのインストール(Ubuntuを例に)sudo apt-get install build-essential インストール後、gcc --version でバージョンを確認できます。 gcc を使用して実行可能ファイルをコンパイルするプロセスで、その基本的なアプリケーションを習得しましょう。 準備: まず、vimを使用して現在のディレクトリに.cファイルを作成します(例:666.c)。 $ vim 666.c (vimの使い方については別のブログで詳しく説明しているので、ここでは詳しくは説明しません) コードを挿入します。 #include <stdio.h> 主要() { 整数 a,i; a=6; (i=0;i<3;i++) の場合 { printf("%d",a); } } (毎回catを使って確認します) 1. 前処理1. 前処理では、マクロ定義 (#define など) を展開し、ヘッダー ファイル (stdio.h など) を展開し、条件 (ifdef など) をコンパイルし、すべてのマクロを展開し、すべてのコメント ("//" など) を削除します。前処理 cpp は、ソース コードとヘッダー ファイルを .i ファイルに前コンパイルします。 (この時点では構文はチェックされないため、構文エラーがあってもエラーは報告されません。) 2. コマンド: $ gcc -E (ソースファイル名) -o (プリプロセッサファイル名) または: $ gcc (ソースファイル名) > (プリプロセッサファイル名) たとえば、666.c によれば、前処理は次のようになります。 gcc -E 666.c -o 666.i gcc 666.c > 666.i とも言える。 2. コンパイル1. コンパイルとは、構文が正しいかどうかを確認し、前処理されたファイルをアセンブリ ファイルにコンパイルすることを意味します。 2. コマンド: $ gcc -S (ソースファイル) -o (アセンブリファイル) たとえば、gcc -S 666.i -o 666.s 3. コンパイル1. アセンブリとは、アセンブリファイルから目的のファイル(バイナリファイル)を生成することです。アセンブリにより、テキストコードはバイナリコードに変換されます。 (バイナリ コード ファイルには .o というサフィックスが付きます)。 2. コマンド: $ gcc -c (アセンブリファイル) -o (オブジェクトファイル) たとえば、gcc -c 666.s -o 666.o (バイナリファイルなので文字化けします) 4. リンク1. 依存ライブラリ ファイル (静的および動的) を検索し、ターゲット ファイルを実行可能プログラムにリンクします。 $ gcc -c [対象ファイル] -o [実行可能プログラム] -l [動的ライブラリ名] 動的ライブラリがない場合(通常) 直接 $ gcc -c [対象ファイル] -o [実行可能プログラム] たとえば、gcc -c 666.o -o 666 このとき、実行可能プログラム666が生成される。 このコマンドを実行する場合: $ ./実行可能プログラム ./ は現在のディレクトリを意味します。 例えば./666 (注: 一般に、gcc 実行ファイル名を使用すると、デフォルトで a.out 実行ファイルが生成されます。この場合、./a.out を使用して直接実行できます。) Linux システムでの gcc コマンドの詳細な使用法に関するこの記事はこれで終わりです。Linux gcc コマンドに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: ベスト HTML/CSS デザインおよび開発フレームワーク 15 選を紹介します
>>: MySQL に IP アドレスを効果的に保存する方法と、文字列 IP と数値を変換する方法の詳細な説明
最近、業務上のボタンの増加により、ページレイアウトにボタンが多すぎて、ページが美しくなく、ユーザーエ...
よくある質問ユーザー ''@'localhost' によるデータベー...
MySQL データベースがエラー 1045 (28000): ユーザー 'ODBC'...
序文多くの学生は既に再帰に精通していると思います。アルゴリズムの問題を解決するために再帰がよく使...
この記事では、 Dockerコンテナ ( docker-composeを使用してオーケストレーション...
この記事では、JavaScriptで動的なデジタル時計を実装するための具体的なコードを参考までに紹介...
コマンド: mysqlhotcopyこのコマンドは、ファイルをコピーする前にテーブルをロックし、不完...
昨日のプロジェクト開発中に、スタイルの読み込み優先順位に関する問題が発生しました。クラスは定義され、...
以下は、Shiji Tiancheng が Tencent KartRider ページを呼び出すため...
<br />ブログを始めて 1 年、私はブログの内外で多くのことを個人的に学びました。ま...
目次0x0 はじめに0x1 インストール0x2 ノードサイドバー0x3 統合例0x0 はじめにプロジ...
目次1. マップされた型2. マッピング修飾子3. キーの再マッピング4. さらなる探究序文: Ty...
この記事では、参考までに、スネークゲームを実装するためのWeChatアプレットの具体的なコードを紹介...
目次1. HTML5のテンプレートタグ2. テンプレートタグ操作のプロパティとメソッド3. Vueの...
Linuxインスタンスでシステムディスクを初期化した後、データディスクを再マウントするLinux イ...