0

私はmakefileを使用するのが初めてで、大学の演習の一部として基本的なmakefileを作成しようとしています。2つのソースコードファイル、chello.cとwriteexit.sがあります。これらのファイルをコンパイル/アセンブルしてから、リンクしてchelloを生成する必要があります。

これは私がこれまでにmakefile用に持っているコードです:

chello: chello.o  writeexit.o
  ld -N chello.o writeexit.o -o chello

chello.o: chello.c
  gcc -c chello.c -o chello.o

writeexit.o: writeexit.s
  as writeexit.s -o writeexit.o

ld、gcc、およびすべてのタブの前の空白なので、空白は問題ないと思います。「makemakefile」を呼び出すと、「make:「makefile」に対して何も実行されません」が返されます。ただし、chello.cのように、chelloの依存関係を変更すると、同じメッセージが返され、chelloの動作は変更されません。

4

2 に答える 2

2

からman make:

make は、makefile 内のコマンドを実行して、1 つ以上のターゲット名を更新します。name は通常、プログラムです。-f オプションが指定されていない場合、make は GNUmakefile、makefile、Makefile の順に makefile を探します。

make makefile実際に「makefile」ファイルを実行し(manページのデフォルト名にリストされているため)、すでに存在する「makefile」ターゲットを構築しようとします(渡した引数のため)

必要なのは「chello」バイナリをビルドすることなので、次のように入力する必要があります。

make chello

または、次のようにします。

make -f makefile chello

于 2012-10-14T17:18:01.337 に答える
0

別のアカウントです。「make makefile」の代わりに「make」を呼び出すとうまくいくようです。この質問は無視できます。

于 2012-10-14T17:17:53.527 に答える