首页 > 解决方案 > (Makefile 错误:*** 缺少分隔符)以下 makefile 在我的本地 IDE 中工作正常,但在 Putty 客户端中运行时失败

问题描述

由于 Putty 客户端上缺少分隔符错误,Makefile 失败。

我尝试重新制作文件并用选项卡替换每个空格,但似乎没有任何效果

CLIENT         = IntegerStackTest
ADT            = IntegerStack
SOURCE         = $(CLIENT).c
OBJECT         = $(CLIENT).o
ADT_SOURCE     = $(ADT).c
ADT_OBJECT     = $(ADT).o
ADT_HEADER     = $(ADT).h
COMPILE        = gcc -c -std=c99 -Wall
LINK           = gcc -o
REMOVE         = rm -f
MEMCHECK       = valgrind --leak-check=full

$(CLIENT) : $(OBJECT) $(ADT_OBJECT)
    $(LINK) $(CLIENT) $(OBJECT) $(ADT_OBJECT)

$(OBJECT) : $(SOURCE) $(ADT_HEADER)
    $(COMPILE) $(SOURCE)

$(ADT_OBJECT) : $(ADT_SOURCE) $(ADT_HEADER)
    $(COMPILE) $(ADT_SOURCE)

clean :
    $(REMOVE) $(CLIENT) $(OBJECT) $(ADT_OBJECT)

memcheck : $(CLIENT)
    $(MEMCHECK) $(CLIENT)

Makefile:1: *** 缺少分隔符。停止。

标签: makefile

解决方案


我不确定这是否相关,但我假设您正在使用 PuTTy 作为您的 makefile,以便在跨 IP 网络(ssh)或 RS232 串行链路运行的机器上构建代码。

如果是这样的话,那么唯一可能发生的问题将是由于

  1. 目标主机与您使用 IDE 的开发站不同。主机上运行的不同控制器和/或不同操作系统或 RTOS 版本之间存在一些异常。

  2. 如果它是您正在构建的串行链接,由于终端编码设置,它可能(尽管是远程的)可能。(CR/LF/CRLF 用于线路末端等)

您可能只是尝试使用目标平台的模拟器,构建二进制文件,然后上传二进制文件,而不是在目标上编译。

我偶然发现了一些在 Rabbit Platform 上使用 MicroC OS 的刺激物。

都是最棒的人。我在这里有点新。不知道这是否有帮助?

祝你好运,伙计。


推荐阅读