コンパイラの基本ルールを作成しますか?

コンパイラの基本ルールを作成しますか?

「makefile」、「readme」、およびC++ソースプログラム(.cppファイル)を使用するジョブを実行しようとしています。すべて圧縮されたtarファイルに存在する必要があります。私のメイクファイルにもクリーンアップとバックアップルールがあるべきだと言われましたが、残りを正しく実行する方法がわかりません。

課題を送信しようとしましたが、「あなたのメイクファイルにはこのプログラムをコンパイルするための基本的な規則はありません」と言われました。

これは私のビルドファイルです。

# makefile to build a program
clean:
    /bin/rm -f myname *.o
backup:
    tar czf cm25.assignment4_1.tar.gz readme Makefile

明らかに何かが抜けたものが、ここでは古い次からファイルを生成する古い参考資料として使用できますが、何を含めるべきか、何を含める必要がないのかわからない課題:

# makefile to build a program

# program depends on components: name and main 
myname:      main.o name.o 
    g++ -g  main.o name.o -o myname

# name.cpp has it's own header file
name.o:        name.cpp name.h
    g++ -c -g  name.cpp

# main.cpp also uses the header file name.h
main.o:        main.cpp name.h
    g++ -c -g main.cpp

clean:
    /bin/rm -f myname *.o
backup:
    tar czf cm25.assignment4_1.tar.gz *.cpp readme Makefile

私のすべての圧縮tarファイルには.cppファイル、readme、makefileのみがあり、ヘッダーなどはありません。

ベストアンサー1

課題を送信しようとしましたが、「あなたのメイクファイルにはこのプログラムをコンパイルするための基本的な規則はありません」と言われました。

まあ、誰が正しいと言っても、2つのルールしかありません。 1つはビルド製品を削除し、もう1つはプロジェクトの一部をアーカイブすることです(実際のソースコードは含まれていません)。

Makefileの先頭に追加します。

all: myprogram

ついに:

myprogram: myprogram.cpp
(TAB)gcc -Os -Werror -Wall -Wextra -o myprogram myprogram.cpp

おすすめ記事