2016-09-25 1 views
0

У меня возникли проблемы с созданным autotools Makefile, и он сначала выглядит как this. Когда я пытался make ошибка возникшие:Отсутствует разделитель на Makefile

Makefile:327: *** missing separator. Stop. 

Затем я попробовал следующее изменение:

326,327c326 
< LDFLAGS = -Wl,-O1,--sort-common,--as-needed,-z,relro -L/home/tjm/tmp/fake-root/libgd/usr/local/lib/ -L /home/tjm/tmp/fake-root/libpng/usr/local/lib -L /home/tjm/tmp/fake-root/freetype/usr/local/lib -L /home/tjm/tmp/fake-root/libpng/usr/local/lib -L /home/tjm/tmp/jpeg-6b 
<  -static 
--- 
> LDFLAGS = -Wl,-O1,--sort-common,--as-needed,-z,relro -L/home/tjm/tmp/fake-root/libgd/usr/local/lib/ -L /home/tjm/tmp/fake-root/libpng/usr/local/lib -L /home/tjm/tmp/fake-root/freetype/usr/local/lib -L /home/tjm/tmp/fake-root/libpng/usr/local/lib -L /home/tjm/tmp/jpeg-6b -static 

Но, на этот раз, я получил эту ошибку:

Making all in intl 
Makefile:35: *** missing separator. Stop. 
make[1]: *** [Makefile:582: all-recursive] Error 1 
make: *** [Makefile:489: all] Error 2 

Родственный линии выглядят так:

32 skip_next=no; \ 
33 strip_trailopt() \ 
34 { \ 
35  flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ 
36 }; \ 

И я teird много вещей, как:

34 { flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; }; \ 

34 { \ 
35  flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; }; \ 

33 strip_trailopt() { flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; }; \ 

и

35 ^Iflg=printf '%s\n' "$$flg" | sed "s/$$1.*$$//"; \$ 

Но все-таки получил ту же ошибку.

Кто-нибудь может дать мне некоторую ieda о том, как ее исправить?

+0

Если сгенерированный make-файл сломан, это, вероятно, означает, что makefile.am нарушен. Вы пишете это или это из другого проекта? – user657267

ответ

0

(Примечание. Я не уверен, если это верно в StackOverflow против суперпользователя)

Если вы редактировали Makefile, это не будет полезным, поскольку оно будет просто повторно генерировать из Makefile.in, и это, в свою очередь, будет сформировано из Makefile.am.

Проверьте файл Makefile.am и положите -static в ту же строку, что и все остальное; происходит то, что он не имеет символа продолжения в конце предыдущей строки (\), поэтому определение переменной не продолжается. И из-за этого он пытается разобрать его, как правило, что это не так.