ページ 11

makefileを行いたいのですが上手くいきません

Posted: 2017年11月20日(月) 00:15
by NAR
Yahoo知恵袋でも同じ質問をし何度か試行したのですが"@"が無効と言われファイルを作れません。


https://detail.chiebukuro.yahoo.co.jp/q ... 2182073967

Visual Studio 2017

コード:


TARGET = Sample.exe

OBJS = Sample13.obj myfunc.obj

CFLAGS = /EHsc

$(TARGET):$(OBJS)
 $(CC) /Fe$@ $**

$(OBJS):myfunc.h

clean:
 del *.obj
 del *.exe


Re: makefileを行いたいのですが上手くいきません

Posted: 2017年11月20日(月) 00:36
by みけCAT
Makefileのインデントは、スペースではなくタブを用いなければいけません。

Re: makefileを行いたいのですが上手くいきません

Posted: 2017年11月20日(月) 02:37
by NAR
全てタブに変えてみましたがダメです。

こちらで回答通り書き写すとdelのところに区切り記号が必要、
コピぺで回答を移すと予期しない$(CC)と表示されます

Re: makefileを行いたいのですが上手くいきません

Posted: 2017年11月20日(月) 04:02
by かずま
適当な Sample13.c と myfunc.h と myfunc.c を用意して、
質問の makefile で nmake を実行すると次のようになりました。

コード:

C:\tmp\Make>nmake

Microsoft(R) Program Maintenance Utility Version 14.10.25019.0
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl /FeSample.exe Sample13.obj myfunc.obj
Microsoft(R) C/C++ Optimizing Compiler Version 19.10.25019 for x86
Copyright (C) Microsoft Corporation.  All rights reserved.

Microsoft (R) Incremental Linker Version 14.10.25019.0
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:Sample.exe
Sample13.obj
myfunc.obj
LINK : fatal error LNK1181: 入力ファイル 'Sample13.obj' を開けません。
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX86\x86\cl.EXE"' : リターン コード '0x2'
Stop.

C:\tmp\Make>
「"@"が無効と言われファイルを作れません。」というメッセージは出ません。

よく見ると、全部の空行に 1個のスペースがありました。
これらを削除するとビルドできました。

$(CC) の前や del の前などのインデントは、
タブでなくスペースでもよいようですが、
空行にスペースがあるとだめみたいです。

Re: makefileを行いたいのですが上手くいきません

Posted: 2017年11月20日(月) 16:46
by NAR
やってみたら上手くいきました!ありがとうございました!