最近、Macbook Proを購入しましたが、端末でCでコーディングを行いたいと思います。
このコマンドでコードをコンパイルできます:
gcc filename.c –o filename
しかし、ベストプラクティスであることがわかっており、ベストプラクティスに従うことを望んでいるので、makeコマンドでコンパイルしたいと思います。
make filename cc filename.c -o filename
このコマンドにより、次の出力が得られます。
make: Nothing to be done for `ex01'.
make: *** No rule to make target `cc'. Stop.
XcodeとXcode開発者のコマンドラインツールをインストールし、フォルダー/ usr/binにmakeおよびmakefileプロパティが表示されていることに注意してください。
Makefileとcc引数でコンパイルできるようにするために何をすべきかについてのヒントはありますか?
次の内容の同じパスにMakefile
というファイルを作成します。
CC = cc
CFLAGS = -std=c99 -pedantic -Wall
OBJECTS = filename.o
all: appname
filename.o: filename.c
$(CC) $(CFLAGS) -c filename.c
appname: $(OBJECTS)
$(CC) $(OBJECTS) -o appname
clean:
rm -f *.o appname
次に実行します:
make
もちろん、appname
をプログラムの名前に置き換えます
注:「スペース」ではなく「タブ」が必要です
$(CC) $(CFLAGS) -c filename.c
そして
$(CC) $(OBJECTS) -o appname
私は同じ tutorial を追いかけていましたが、同様の問題に遭遇しました。
あなたが何をしたのか正確にはわかりませんが、間違いは間違ったコマンドを実行していたと思います。 make filename cc filename.c -o filename
と入力しましたが、チュートリアルではmake filename
部分なしでcc filename.c -o filename
を使用するように指示されました。たぶん、あなたは古いバージョンを読みましたか?
そして、make filename
は正常に動作します Makefileは必要ありません 。
参考までに、この問題にどのように遭遇し、どのように解決したかを以下に示します。
以下のコードを入力し、「ex1」という名前のファイルに保存しました
int main(int argc, char *argv[])
{
puts("Hello world.");
return 0;
}
make ex1
in端子make: Nothing to be done for 'ex1'.
を取得しましたご覧のとおり、私の間違いは、ソースコードのファイル名がex1.cでなく、であることでした。 ex1。
そして、ファイル名をex1.cに変更してmake ex1
を実行すると、うまくいきました。