693

これは私のメイクファイルです:

all:ll

ll:ll.c   
  gcc  -c  -Wall -Werror -02 c.c ll.c  -o  ll  $@  $<

clean :
  \rm -fr ll

make cleanまたはを実行しようとするとmake make、次のエラーが発生します。

:makefile:4: *** missing separator.  Stop.

どうすれば修正できますか?

4

16 に答える 16

1428

make はタブと非常に愚かな関係にあります。すべてのルールのすべてのアクションは、タブで識別されます。いいえ、4 つのスペースではタブは作成されません。タブだけがタブになります。

確認するには、コマンドを使用しcat -e -t -v makefile_nameます。

の付いたタブと の付いた^I行末の存在を示しています$。どちらも、依存関係が適切に終了し、タブがルールのアクションをマークして、make ユーティリティで簡単に識別できるようにするために不可欠です。

例:

Kaizen ~/so_test $ cat -e -t -v  mk.t
all:ll$      ## here the $ is end of line ...                   
$
ll:ll.c   $
^Igcc  -c  -Wall -Werror -02 c.c ll.c  -o  ll  $@  $<$ 
## the ^I above means a tab was there before the action part, so this line is ok .
 $
clean :$
   \rm -fr ll$
## see here there is no ^I which means , tab is not present .... 
## in this case you need to open the file again and edit/ensure a tab 
## starts the action part
于 2013-06-05T16:27:25.233 に答える
15

の解決策は、プラグインPyCharmをインストールすることです。Makefile support

  1. 開くPreferences( cmd + ,)
  2. に行くPlugins- >Marketplace
  3. を検索しMakefile support、IDE をインストールして再起動します。

これで問題が修正され、makefile の構文が提供されるはずです。

于 2019-01-08T16:09:58.810 に答える
4

キーポイントは「HARD TAB」でした 1.空白の代わりにTABを使用したかどうかを確認します

于 2014-11-21T15:05:44.583 に答える
1

これは、タブがスペースに置き換えられているためです。この機能を無効にするには、

gedit->編集->設定->エディタ

のチェックを外します

"タブをスペースに置き換えます"

于 2016-07-11T05:18:57.167 に答える
0

Eclipse で Makefile を編集している場合:

Windows-> Preferences->General->Editor->Text Editors->Show Whitespace Characters -> Apply

または、以下に示すショートカットを使用します。

タブは灰色の ">>" で表され、スペースは灰色の "." で表されます。下図のように。

ここに画像の説明を入力

于 2020-09-28T07:07:03.840 に答える