学習のための4 LinuxシステムのC言語開発環境を実験
プロジェクト | コンテンツ |
---|---|
この作品は、コースに属し | コースリンク |
どこの仕事でこの要件 | 運用要件 |
学生ID - 名前 | 17041401-黄LANLAN |
ジョブの学習目標 | 1、LinuxシステムのC言語開発環境は、Linuxシステム環境C言語の開発プロセスを学習し、2を構築します |
コンテンツ実験
C言語の開発環境をインストールします。1.
sudo apt install build-essential
1)。GCCのバージョン情報を見ます
gcc -v
2)表示メイクバージョン情報
make -v
2. A簡単なC言語の演習
1)まず、manコマンドを通じて、私たちのヘルプドキュメント
man gcc
2)単純なコマンド・ライン・モードC言語コンパイラ、リンカ、およびその他の操作
私たちは、このようなプログラムの出力自身の学生番号を書いて、vimのエディタにより、簡単なC言語プログラムを書くことができます。フォルダを作成し、新しく作成されたファイルフォルダを入力します。
私のシステムのVIMエディタの初めから設定ファイルは、再更新されたファイル名の矛盾上の一連の作業の途中、ここでI再構成vimの、構築された別のファイルtest2.cので、
cat test2.c
。プリコンパイルされました
-E test2.c -o test2.i gccの#プリコンパイルされた
test2.c #ソースファイル
test2.iのプリコンパイルされたファイルの後に生成された#
書き込みtest2.cのVIMエディタ
猫とファイルの内容を見ます
B。コンパイル
-S test2.i -o test2.s GCC
test2.s ファイル#をコンパイルした後に生成
C。コンパイル
-c -o test2.o test2.s GCC
test2.o #対象のファイルはバイナリファイルであります
objdumpのコマンドでファイルのファイルの内容を逆アセンブルします
D。リンク
test2.o -o test2はgccの
test2は#実行ファイル
ファイルのファイルの内容を逆アセンブルするためのコマンドを使用して、objdumpは
objdump -d test2
すなわちラン
3)複数ファイルのコンパイル
exp4フォルダ内のフォルダMFCを構築するには、以下の
このフォルダには、以下の5つのファイルを作成し、以下のようにファイル名は次のとおりです。
次のように各ファイルの内容は以下のとおりです。
main.cのCATの#は、ファイルmain.cの内容を表示します
my1.h CATの#は、ファイルmy1.hの内容を表示します
my1.c CATの#は、ファイルmy1.cの内容を表示します
my2.h CATの#は、ファイルmy2.hの内容を表示します
my2.c CATの#は、ファイルmy2.cの内容を表示します
次は、コンパイラが実行可能ファイルへのリンクを生成することができ、複数ファイルのコンパイルのために、コンパイルするには、別途、各Cファイルをコンパイルすることができ、最終的に実行可能ファイルをリンクします。
二つの方法の違いを教えてください?
多个文件一起编译时:
gcc my1.c my2.c main.c -o main1 将my1.c、my2.c、main.c分别编译后链接成main1可执行文件。
分别编译各个源文件,之后对编译后输出的目标文件链接:
gcc -c my1.c 将my1.c.c编译成my1.o
gcc -c my2.c 将my2.c编译成my2.o
gcc -c main.c 将main.c编译成main.o
gcc my1.o my2.o main.o -o main2 将my1.o、my2.o、main.o链接成main2可执行文件
前のフォルダの実行可能ファイルが既に存在するために、最初の実行可能ファイルの削除ので、その後、メイクツールでコンパイルFiのル簡単なメイクを、書きます。
メイク#はMakefileの、接続、オブジェクト・ファイル、実行可能ファイルに応じてソースコードをコンパイル。
ファイルMakefieの内容を見ます
Makefileの#makefile定義ルールのセットにコンパイルする必要のあるファイルを指定するには、またシェルのようなスクリプトのようなメイクファイル、ので、再コンパイルする必要があるファイルを、より複雑な機能動作をコンパイルする必要がどのファイルあなたは、オペレーティングシステムのコマンドを実行することができます
クリーンメイククリーンメイクオブジェクトファイル#makeが生成された最後のコマンド(接尾辞「の.o」ファイル)と実行可能ファイルをクリア