当前位置: 首页 > 面试题库 >

make文件中的错误:***缺少分隔符。停止

贺功
2023-03-14
问题内容

我在CentOS 6.02
64位中的make文件中遇到错误。我需要知道应该怎么做才能使makefile可行。任何建议将大有帮助。我的make文件粘贴在下面:-

#



.SUFFIXES: .cc $(.SUFFIXES)



ALL = libpal.a



#all = $(ALL)

all: $(ALL)



.cpp.o:

            $(C++) -o $@ -c $(PROF) $(CFLAGS) $*.cpp

.cc.o:

            $(C++) -o $@ -c $(PROF) $(CFLAGS) $*.cc

.c.o:

            $(CC) -o $@ -c $(PROF) $(CFLAGS) $*.c



top_srcdir = ..

OPENSSL_LIB_DIR = ../../ThirdPartyLibs/openssl-0.9.8e/include
BOOST_DIR = ../../ThirdPartyLibs/boost/stage/lib

BOOST_INCLUDE_DIR = ../../ThirdPartyLibs/boost





CC = gcc

C++ = g++

CCOPT = -Os -Wall -Wno-deprecated

CCOPT_DEBUG = -Wall -g -Wno-deprecated

PROF =



STATIC = -static





INCLUDE = \
 -I./usr/include/sys

 -I./Headers \

 -I$(top_srcdir)/PAL/Headers \

 -I$(top_srcdir)/BaseMulti/Headers \

 -I$(top_srcdir)/NetworkMulti/Headers \

 -I$(top_srcdir)/RTP/Headers \

 -I$(BOOST_INCLUDE_DIR) \

 -I$(OPENSSL_LIB_DIR) \



LIBDIRS = \

    -L$(BOOST_DIR) \





#XXX NLAYER define / MB_DEBUG

DEFINE =  -D_LINUX -DDEBUGLOG -D_INDENT_DB_PRINT -fsigned-char -fno-inline -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D_POSIX_PER_PROCESS_TIMER_SOURCE -D_PTHREADS -DUNICODE #-DDISABLE_LOG



SHLIB_SUFFIX   = .so

SHLIB_LD       = gcc -shared

SHLIB_LD_LIBS  =

SHLIB_CFLAGS   = -fPIC



BFLAGS = $(DEFINE) $(INCLUDE)

CFLAGS = $(CCOPT) $(BFLAGS)



OBJ_C =



OBJ_CC = \

    ./Sources/PALsystime.o \

    ./Sources/PALdebug.o \

    ./Sources/PALdebuglog.o \

    ./Sources/PALthread.o \

    ./Sources/PALcritsec.o \

    ./Sources/PALprofiler.o \

    ./Sources/PALserializable.o \

    ./Sources/PALinet.o \

    ./Sources/PALnetwork.o \

    ./Sources/PALsocket.o \

    ./Sources/PALlocalhostUdpEvent.o \

    ./Sources/PALpollarray.o \

    ./Sources/PALrandom.o \



OBJS = $(OBJ_C) $(OBJ_CC)



SRCS = $(OBJ_C:.o=.c) $(OBJ_CC:.o=.cc)



debug: DEFINE += -DDEBUG

debug: BFLAGS = $(DEFINE) $(INCLUDE)

debug: CFLAGS = $(CCOPT_DEBUG) $(BFLAGS)

debug: $(OBJS)

    ar crsu libpal_debug.a $(OBJS)



libpal.a: $(OBJS)

    ar crsu libpal.a $(OBJS)



cleandeps:

    $(RM) ./Sources/*.o .depend* core



clean: cleandeps

    $(RM) ./libpal.a ./libpal_debug.a

    $(RM) $(ALL)

结果错误是:

Makefile:34: *** missing separator.  Stop.

问题答案:

您可以在Make产生的附录B错误中找到此错误的说明。

配方中的每一行必须以制表符开头。从文件顶部开始$(C++)$(CC)附近的配方似乎都不以制表符开头。

此外,本节

INCLUDE = \
    -I./usr/include/sys
    -I./Headers \

sys同一节(以及更多节)具有多余的空行之后,似乎缺少了一个反斜杠。



 类似资料:
  • 问题内容: 嗨,我是Android编程的新手,我想问的问题可能很简单,但是我对如何使其工作一无所知,请多多包涵。 我从Android开发人员网站安装了android-sdk和相关工具。我按照他们的指示创建了HelloWorld应用,但出现了一些我不理解的错误。 文件MainActivity.java是一个自动生成的文件,在以下位置,我不断出现此文件错误: 因此,我尝试浏览生成的class文件中的l

  • 问题内容: 已修改。 此代码有什么问题?我得到以下错误。 您的SQL查询中似乎有一个错误。下面的MySQL服务器错误输出(如果有的话)也可以帮助您诊断问题 错误:未知的标点字符串@ 102 STR:|; SQL:如果存在PersonName,则执行DROP功能;#MySQL返回空结果集(即零行)。 DELIMITER |; DELIMITER |; DELIMITER |; DELIMITER |

  • 我试图创建一个程序,该程序可以识别哪些分隔符缺少,并将它们插入文件中各自的位置。因此,例如,让我们假设我的如下所示: 我已经尝试打印,但根本不起作用,它只打印了数字116。 所以我的问题是:是否可以实际使用异常错误消息来修复,因为它显示缺少什么分隔符以及应该在什么位置,还是应该使用堆栈数据结构来跟踪所有可能的分隔符并插入缺少的分隔符?或者有没有更好的方法来做到这一点? 我在这里看到过其他问题,比如

  • 问题内容: 在从openni编译演示时,我偶然发现了此错误: 我在Mac上执行此操作。我最好的猜测是该文件不在我的java.library.path中 我现在的问题是:这个猜测正确吗,以及如何在netbeans中添加到java.library.path中。 提前Thx 问题答案: 将此添加到projects属性的VM选项中:-Djava.library.path = / Users / olivi

  • 问题内容: 我正在尝试更改MySQL命令定界符,以便可以在其中创建包含多个命令的过程。但是,在MySQL 5.1.47上似乎无法识别delimiter命令。我在MySQL 5.0.91上对其进行了测试,并且确实在其中工作。 在两种情况下,我都试图从phpmyadmin运行此程序。不能选择使用5.0.91,因为我需要使用事件()。 错误信息: 是否有原因不起作用,或者有其他方法可以完成同一件事(创建

  • 问题内容: 尝试构建PlayN示例项目,我得到: 在每个文件上。我该如何解决? 编辑 : 我已将Profiles节点添加到,但错误仍然存​​在。我检查了确实存在,但实际上不存在。所以我已经添加到lib文件夹。而且错误仍然存​​在。 完整的pom.xml: 问题答案: 该工件始终被视为“系统”依赖项。它永远不会存储在仓库中。 有关详细信息,请参见http://maven.apache.org/gen