Ошибки в make-файле: *** недостающий сепаратор. Остановиться

Я сталкиваюсь с ошибками в make-файле в CentOS 6.02 64 бита. Я должен знать то, что должно быть сделано, чтобы сделать make-файл осуществимым. Любое предложение будет значительно полезно. Мой make-файл приклеивается ниже: -

#



.SUFFIXES: .cc $(.SUFFIXES)



ALL = libpal.a



#all = $(ALL)

all: $(ALL)



.cpp.o:

            $(C++) -o [email protected] -c $(PROF) $(CFLAGS) $*.cpp

.cc.o:

            $(C++) -o [email protected] -c $(PROF) $(CFLAGS) $*.cc

.c.o:

            $(CC) -o [email protected] -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.
35
nl ja de

3 ответы

Можно найти объяснение этой ошибки в Приложение B Ошибки, произведенные, делают.

Каждая линия в рецепте должна начаться с символа табуляции. Рецепты, начинающиеся с $ (C++) и $ (CC) около вершины вашего файла, кажется, не начинаются с символа табуляции.

Кроме того, раздел

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

кажется, пропускает наклонную черту влево после того, как у sys и тот же самый раздел (и еще много) будут лишние пустые линии.

45
добавлено
измененный это, но все еще ошибка.
добавлено автор Naseef Ur Rahman, источник
будете вы ре писать команду в точной форме?
добавлено автор Naseef Ur Rahman, источник
измененный наклонные черты влево, но все еще та же самая ошибка.
добавлено автор Naseef Ur Rahman, источник
Дружественное примечание людям, использующим Возвышенный текст, удостоверьтесь, что вам установили счет как показано в этом вопрос. Проверьте свои параметры настройки текстового редактора дважды. Также удостоверьтесь, что ваш Make-файл находится в правильном справочнике (хотя, если это было в неправильном справочнике it' d бросают различную ошибку).
добавлено автор aug, источник
И использование ремейк-x </ код> вообще полезен, чтобы найти такие ошибки...
добавлено автор Basile Starynkevitch, источник
Вы получаете ту же самую ошибку? Если да, какая линия точно - линия 34? Между прочим, необходимо удалить некоторые лишние пустые линии. Кроме того, линия -I./ usr/ include/ sys , кажется, пропускает наклонную черту влево, и у других есть дополнительная наклонная черта влево
добавлено автор Reinier Torenbeek, источник
Вы удаляли пустые линии?
добавлено автор Reinier Torenbeek, источник
Когда копия/приклеивание от одного make-файла до другого использования vi (или энергия) редактор убедиться не случайно захватить ~ (тильда) конец указания линии файла. Реальный ~ похож на vi маркер и вызовет "*** недостающий сепаратор. Остановитесь". ошибка. Это может казаться очевидным, но когда это происходит случайно it' s совсем не очевидный. Посмотрите мой комментарий блога для получения дополнительной информации.
добавлено автор Scott, источник

Откройте свой make-файл в энергии, а не в редакторах как gedit. Каждая линия в рецепте должна начаться с символа табуляции.

24
добавлено
@BradenBest делают </ код> не вынуждает вас использовать счета, это - просто характер по умолчанию, используемый, чтобы указать на начало рецепта. Если вы не любите это, просто устанавливаете .RECIPEPREFIX к различной стоимости. Конечно, никто не поймет, как иметь дело с вашим make-файл больше, но вы просто вынуждаете их читать документация :-).
добавлено автор Reinier Torenbeek, источник
+1 простой и прямые. И , конечно мне формировали мою энергию к счету с двумя местами (0x20) вместо счета. Должен был искать таблицу ASCII, чтобы найти соответствующий управляющий символ (0x09, или ^I с тех пор ' I' 9-й характер в алфавите). Таким образом для кого-либо еще в аналогичной ситуации, легкий способ вставить счет в энергию через ^V^I (Ctrl-V, Ctrl-I) в то время как в режиме вставки. Кроме того, должен спросить я who' s блестящая идея это должно было вынудить вас использовать счета. Даже питон isn' t настолько строгий с пробелом: P
добавлено автор Braden Best, источник

Этот ответ для другого , Делают новичками таким как самостоятельно, кто находит этот вопрос от Googling и застревает, потому что они изменяют большой существующий ранее Make-файл без линий, начинающихся с пробела. Моя проблема произошла, потому что make-файл в подкаталоге с местами вместо счетов становился названным родительским make-файлом, где я ошибочно думал, что проблема существовала.

Как только я зафиксировал make-файл в подкаталоге, все работало как очарование.

6
добавлено
Linux Help
Linux Help
2 686 участник(ов)

Правила: https://telegra.ph/Pravila-Linux-Help-10-15

Linux Security
Linux Security
652 участник(ов)

Данная группа принципиально про безопасность и в частности про безопасность Linux. Прочие темы просим обсуждать в профильных чатах.

Debian | Centos | Флуд
Debian | Centos | Флуд
477 участник(ов)

CentOS [Ru]
CentOS [Ru]
283 участник(ов)

Эта группа создана для обмена практикой пользования дистрибутивом и помощи пользователям #CentOS Linux. Правила: запрещен расизм, нацизм, экстремизм, различная содомия и оскорбление участников. В чате не приветствуется мат. С Уважением, Администрация.

Linux Gaming RUS
Linux Gaming RUS
28 участник(ов)

Русскоязычный чатик, посвящённый играм на различных дистрибутивах Linux, а также wine, proton Arch Linux RU @ArchLinuxChatRU Gnome RU @gnome_ru