Make 文件给出 *** 缺少分隔符

Jee*_*eva 2 makefile pjsip

我正在尝试构建 pjsip 项目..这是我的 pjsip 项目 make 文件..

 include ../../../build.mak
    include ../../../build/common.mak

    export LIBDIR := ../../lib

    RULES_MAK := $(PJDIR)/build/rules.mak

    #export MYCOMPRESS_LIB := ../../lib/lmycompresslib-$(TARGET_NAME)$(LIBEXT)
    export MYCOMPRESS_LIB := lmycompresslib-$(TARGET_NAME)$(LIBEXT)

    ifeq ($(PJ_SHARED_LIBRARIES),)
    else
    export MYCOMPRESS_SONAME := lmycompresslib.$(SHLIB_SUFFIX)
    export MYCOMPRESS_SHLIB := $(MYCOMPRESS_SONAME).$(PJ_VERSION_MAJOR)
    endif

    ###############################################################################
    # Gather all flags.
    #
    export _CFLAGS  := $(CC_CFLAGS) $(OS_CFLAGS) $(HOST_CFLAGS) $(M_CFLAGS) \
               $(CFLAGS) $(CC_INC). $(CC_INC)../../mycompresslib/include \
               $(CC_INC)../../../pjlib/include
    export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
               $(HOST_CXXFLAGS) $(CXXFLAGS)
    export _LDFLAGS := $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
               $(LDFLAGS)

    export MYCOMPRESS_SRCDIR = ../../mycompresslib/src
    export MYCOMPRESS_OBJS = mycompress.o   

    export MYCOMPRESS_CFLAGS =  $(_CFLAGS)


    export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT
    ###############################################################################
    # Main entry
    #
    # $(TARGET) is defined in os-$(OS_NAME).mak file in current directory.
    #
    #TARGETS := lmycompresslib
    TARGETS := $(MYCOMPRESS_LIB) $(MYCOMPRESS_SONAME)

    all: $(TARGETS)

    doc:
        cd .. && doxygen docs/doxygen.cfg

    dep: depend
    distclean: realclean

    #.PHONY: dep depend lmycompresslib clean realclean distclean
    .PHONY: all dep depend clean realclean distclean
    .PHONY: $(TARGETS)
    .PHONY: $(MYCOMPRESS_LIB) $(MYCOMPRESS_SONAME)

    #lmycompresslib:
    #   $(MAKE) -f $(RULES_MAK) APP=MYCOMPRESS app=lmycompresslib $(MYCOMPRESS_LIB)
    lmycompresslib: $(MYCOMPRESS_LIB)
    $(MYCOMPRESS_SONAME): $(MYCOMPRESS_LIB)
    $(MYCOMPRESS_LIB) $(MYCOMPRESS_SONAME):
        $(MAKE) -f $(RULES_MAK) APP=MYCOMPRESS app=lmycompresslib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)

    clean print_lib:
        $(MAKE) -f $(RULES_MAK) APP=MYCOMPRESS app=lmycompresslib $@

    realclean:
        $(subst @@,$(subst /,$(HOST_PSEP),.lmycompresslib-$(TARGET_NAME).depend),$(HOST_RMR))

        $(MAKE) -f $(RULES_MAK) APP=MYCOMPRESS app=lmycompresslib $@

    depend:
        $(MAKE) -f $(RULES_MAK) APP=MYCOMPRESS app=lmycompresslib $@
Run Code Online (Sandbox Code Playgroud)

这是我得到的错误..

.depend:1: *** 缺少分隔符。停止。

我使用此命令来验证使用此命令的 makefile 中是否只有选项卡

cat -e -t -v 生成文件

但当我尝试构建这个项目时,我仍然遇到上述错误。

Jee*_*eva 6

找到解决方案。发生这种情况是因为依赖文件损坏,可能是因为 make dep 停止或突然停止。它实际上是在网站本身中给出的。我需要做的就是发出此命令。

make distclean
Run Code Online (Sandbox Code Playgroud)

这也导致了错误。正如网站上提到的,它指示我删除所有损坏的依赖文件。按照另一个 pjsip 邮件链接

$ find . -name "*.depend" -print | xargs rm -f
Run Code Online (Sandbox Code Playgroud)

发出此命令后,它删除了所有损坏的依赖项,然后我能够成功编译和构建我的项目。