makefile の基本的な使用法、bc を使用してファイルをコンパイルする例 - Ren Zhe の『組み込みリアルタイム オペレーティング システム μCOS-II の原理と応用 - Ren Zhe (第 3 版)』を参照してください。

実験的なサンプル ファイル: (必ずしも必須ではありません。この記事にはすべての内容が含まれており、便宜上のみここに記載されています)

makefile の基本的な使用法、bc を使用してファイルをコンパイルする例 - Ren Zhe の『組み込みリアルタイム オペレーティング システム μCOS-II の原理と応用 - Ren Zhe (第 3 版)』を参照してください。

「組み込みリアルタイム オペレーティング システム μCOS-II の原理と応用 - Ren Zhe (第 3 版)」を勉強すると、説明されていない詳細がたくさんあります。いくつかの実験例を参照して、メイクファイルの基本的な使用方法をいくつかまとめます。

以下は参照のみを目的とした学習プロセスの一部です。

実験前の注意:
この実験は Borland C3.1 の簡易版で行っており、bc ファイルが必要ですので、bc ファイルを E ドライブのルートディレクトリに置き、環境変数を設定してください。
一部の win8-64 ビット システムでは、make.exe などのツールを使用できない場合があります。
1. bc コンパイル済みファイルの実験手順:
bc フォルダーが e ドライブのルート ディレクトリに直接配置され、環境変数 e:\bc\bin が設定されていると仮定します。
bc フォルダーでは E ドライブの bcc.exe ツールを使用します。コマンドは e:\bc\bin\bcc...
1. 上記の例に従ってファイルの場所を設定します (変更可能)。
2. 環境変数を設定します: [マイ コンピュータ] > [プロパティ] > [詳細設定] > [環境変数] ポップアップ ダイアログ ボックスで、つまり、環境変数ダイアログ ボックスの下に新しい PATH 変数名を作成し、d:\EnglishSetup\bc\ を追加します。 bin  変数値
  を変数値に変換します。
(make.exe などが配置されているディレクトリでは、コンピュータはこのディレクトリで make プログラムを見つけることができます。大文字と小文字は区別されません) (または、
  PATH がすでに存在する場合は変数値を追加し、他の変数値はセミコロンで区切られます) 。
  変数を設定する目的は、毎回フルパスを入力する必要をなくし、コマンドの入力を簡素化することです。
3. ソース ファイルを作成します (メモ帳やテキスト ドキュメントなどの他の編集ツールを使用できます) (標準化されたディレクトリに置くのが最善です) 4.
DOS ウィンドウを開きます (コマンド ライン環境) (Win+ の後に cmd を検索します) F で開始し、cmd を実行します)。
  コマンド ライン コマンドを使用して、ソース ファイルが配置されているファイル ディレクトリを入力します (重要)。
 (cmd コマンド ラインの DOS コマンドでは大文字と小文字が区別されませんが、コマンドのポインタまたはパラメータでは大文字と小文字が区別されます)
5. 対応するコマンドを使用して、ソース ファイルをコンパイルまたは接続します。
6. 対応する .obj または .exe ファイルを生成します。
7. 例: 次のコマンドのスペースとタブ キーに注意してください。
(cmd コマンド ライン ウィンドウでは、特定のフォルダーやその他の一般的に使用されるコマンド E:、cd、cd\、dir などを入力することに注意してください。具体的な方法については、Baidu を参照してください)。

たとえば、ソース ファイル test.c があるとします。

//test.c コード

#include<stdio.h>

void main(void)
{ printf("Hello, world!\n"); }


a. 最初に cmd でコンパイルするファイルのディレクトリ パスを入力し、次にコマンド ライン コマンドを使用して独自のファイルをコンパイルします
  。コマンドは次のとおりです: (スペースに注意してください)
bcc -c -ml -Ie:\bc\include -Le:\bc\lib test.c 
  (注 - オプション文字 (文字) が後に続く必要があります)
注: e:\ bc\include および e:\bc\ lib は、インクルード ファイルと lib ファイルが配置されているパスです。
  このコマンドは、ソース ファイル test.c を使用して test.obj ファイルを生成します。
b. ターゲット ファイルを実行可能ファイルに接続します
  。c0l.obj (起動モジュールである c0L.obj) と test.obj を接続する必要があります。tlink.exe を使用して接続します:
  (具体的なファイル名については、bc の各フォルダーの下にあるファイル名を参照してください)
  cmd に入力された接続コマンドは次のとおりです:
tlink e:\bc\lib\c0l.obj test.obj,test,test ,e:\bc\lib\cl.lib
  が接続され、test.exe 実行可能ファイルが生成されます。
test.c によって生成された test.exe ではコマンド ライン ウィンドウが点滅するだけの可能性があるため、hello.c の例が追加されています。

具体的な方法は上記と似ていますが、「test」を「hello」に変更する点が異なります。

//hello.c コード

#include<stdio.h>

#include<stdlib.h>
void main(void)
{
int i;
i=20;
printf("Hello,world!\n");
printf("i=%d\n",i);

system("pause");//调试时暂停程序
}
需要按照要求输入命令即可,其中的命令改为:
bcc -c -ml -Ie:\bc\include -Le:\bc\lib hello.c 

tlink e:\bc\lib\c0l.obj test.obj,hello,hello,e:\bc\lib\cl.lib


二、makefile的简单实验:

说明:
使用前最好将文件放在较浅的路径目录下,以便cmd命令尽可能短。
先建立一个名叫makefile.mak的文件(特别注意后缀,可以使用txt写入内容后修改后缀)
makefile.mak文件的内容:
##生成11和22后将其删除##(#表示注释)
target1:
md 11
target2:
md 22
target3:
rd 11
rd 22
###

cmd窗口命令行进入makefile.mak所在目录,
第一次运行输入make后按回车
上述代码在当前文件夹下生成名叫11的文件夹(执行第一段代码)
第二次键入:make target2
上述代码在当前文件夹下生成名叫22的文件夹(执行第二段代码)
第三次键入:make target3

上述代码将刚建立的11和22两个目录删除(执行第三段代码)

三、makefile编译多个文件实验

1.全部文件为pa.c,pa.h,pb.c,pb.h,test.c(及附带文件makefile.mak和testlink.txt)
  以下假设bc文件夹直接放在e盘根目录下,并设置好环境变量e:\bc\bin。
  且上述文件放在test文件夹下。使用前最好将test文件夹放在较浅的目录下。
2.单步输入cmd命令行方法如下:(注意命令中的空格)
  若bc文件夹直接放在e盘根目录下,设置好环境变量e:\bc\bin后,
  cmd进入上述五个文件所在的目录test后依次输入的指令为:
bcc -c -ml -Ie:\bc\include -I.\ -Le:\bc\lib pa.c
bcc -c -ml -Ie:\bc\include -I.\ -Le:\bc\lib pb.c
bcc -c -ml -Ie:\bc\include -I.\ -Le:\bc\lib test.c
  (多了'-I.\'。应该是由于多了自己建立的头文件)
  依次生成pa.obj,pb.obj,test.obj文件。
  cmd输入连接命令:
tlink e:\bc\lib\c0l.obj pa.obj pb.obj test.obj,test,test,e:\bc\lib\cl.lib
  该实验中最后生成名为test.exe的程序。
  (若使用了printf()函数输出中文,中文部分可能会出现为乱码)
3.(1)使用makefile.mak及make命令方法如下:
使用makefile.mak及make命令来编译(pa.c,pa.h,pb.c,pb.h,test.c)生成test.exe

makefile.mak文件代码(内容)可为:(#为注释

(需要先建立连接文件testlink.txt,且要注意以下的空格与tab键。‘:’后有空格,命令前有tab键

#################################################
#               创建可执行文件(exe)
TEST.EXE:
TLINK @TESTLINK.txt
#################################################
#               创建各个目标文件(obj)
PA.OBJ:
bcc -c -ml -Ie:\bc\include -Le:\bc\lib pa.c
PB.OBJ:
bcc -c -ml -Ie:\bc\include -Le:\bc\lib pb.c
TEST.OBJ:
bcc -c -ml -Ie:\bc\include -Le:\bc\lib test.c

#################################################
需要键入的cmd命令行命令依次为:
make pa.obj
make pb.obj
make test.obj
make
(由于上述采用文件名作为标号,即目标,故make后面输入的可以是文件名)
注意需要建立一个叫testlink.txt的连接文件,并将需要连接的文件按格式要求写入其中。
testlink.txt的内容为:
e:\bc\lib\c0l.obj pa.obj pb.obj test.obj
test
test
e:\bc\lib\cl.lib

(2)上述操作需要输入的make命令太多,若采用命令集形式,只需要输入一次make即可
形式为:
目标: 生成目标所需要的文件名(依赖文件,其实是转移语句标号)
命令集
相当于生成目标的条件不满足时,程序执行将发生转移,转移的目标是以依赖文件名为标号或目标的程序段。
(注意命令集前面有tab键、冒号':'后有空格。)

makefile.mak文件代码(内容)可为:(注意空格与tab键‘:’后有空格,且每个命令前有tab键)
#################################################           
TEST.EXE: PA.OBJ PB.OBJ TEST.OBJ
TLINK @TESTLINK.TXT
PA.OBJ:
bcc -c -ml -Ie:\bc\include -Le:\bc\lib pa.c
PB.OBJ:
bcc -c -ml -Ie:\bc\include -Le:\bc\lib pb.c
TEST.OBJ:
bcc -c -ml -Ie:\bc\include -Le:\bc\lib test.c

#################################################
需要键入的cmd命令为:make

(3)规范完整的makefile.mak文件代码(内容)为:
(凡是以目标为标号的程序段都要写上目标的依赖)
#################################################           
TEST.EXE: PA.OBJ PB.OBJ TEST.OBJ
TLINK @TESTLINK.TXT
PA.OBJ: PA.C PA.H
bcc -c -ml -Ie:\bc\include -Le:\bc\lib pa.c
PB.OBJ: PB.C PB.H
bcc -c -ml -Ie:\bc\include -Le:\bc\lib pb.c
TEST.OBJ: TEST.C
bcc -c -ml -Ie:\bc\include -Le:\bc\lib test.c

#################################################

需要键入的cmd命令同样为:make

希望能帮到大家。

おすすめ

転載: blog.csdn.net/liuxhCSDN/article/details/79928204
おすすめ