makefile:4:** 구분자가 없습니다.이제 그만
이것은 나의 make 파일입니다.
all:ll
ll:ll.c
gcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<
clean :
\rm -fr ll
make clean
★★★★★★★★★★★★★★★★★」make make
, 다다음음음 , , , , , , , , 。
:makefile:4: *** missing separator. Stop.
어떻게 하면 고칠 수 있죠?
탭과 아주 바보 같은 관계를 맺고 있습니다.모든 규칙의 모든 작업은 탭으로 식별됩니다.네 칸으로 계산하면 안 돼요탭만이 탭을 만듭니다.
'하다'라는 명령어를 합니다.cat -e -t -v makefile_name
.
이 있다, 하다, 하다, 하다, 탭이 요.^I
에는 「」가 붙어 있습니다.$
둘 다 의존관계가 올바르게 종료되도록 하기 위해 필수적이며, make 유틸리티에서 쉽게 식별할 수 있도록 규칙에 대한 액션 마크가 탭에 표시됩니다.
예제:
Kaizen ~/so_test $ cat -e -t -v mk.t
all:ll$ ## here the $ is end of line ...
$
ll:ll.c $
^Igcc -c -Wall -Werror -02 c.c ll.c -o ll $@ $<$
## the ^I above means a tab was there before the action part, so this line is ok .
$
clean :$
\rm -fr ll$
## see here there is no ^I which means , tab is not present ....
## in this case you need to open the file again and edit/ensure a tab
## starts the action part
VS 코드에서 Makefile 편집 시 아래쪽 모서리에 있는 "Space: 4"를 클릭하고 탭으로 변경하기만 하면 됩니다.
TLDR;
은 quirkymakefile입니다.
을 「코드로 로 합니다.make
코드는 공백으로만 들여써야 합니다.
을 「코드로 로 합니다.bash
코드는 탭으로만 들여써야 합니다.
sometask:
ifeq($FOO,bar) // this is make code. only spaces
echo "foobar" // this is bash code. only tabs
endif // again, this is make code. only spaces
엄밀히 말하면 통역사를 지시하는 선두 들여쓰기죠
명령어는 항상 공백이 아닌 뒤에 써야 합니다.
이것은 에 적용됩니다.gcc
(#4)을 누르다은 지만, 지만, 지만, 지만, 지만, 지만, 지만, 지만, 앞에 합니다.gcc
.
교환도 합니다.\rm -fr ll
rm -fr ll
이합니다. 이 명령어 앞에도 탭을 삽입합니다.
를 사용하여 탭을 자동으로 수정합니다.
root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
[Makefile]
indent_style = tab
:의 :PyCharm
하다, 설치하다, 설치하다, 설치하다, 설치하다, 설치하다, 설치하다, 설치하다, 설치하다, 설치하다, 설치하다, 설치하다.Makefile support
★★★★★★★★★★★★★★★★★★:
- .
Preferences
)cmd + ,
) - ★★★★★★★★★★★★★★★로 이동
Plugins
->Marketplace
- (Search(검))
Makefile support
IDE를 사용합니다.
그러면 문제가 해결되고 makefile 구문이 제공됩니다.
4행은 "탭" 대신 "스페이스, 스페이스"로 시작했지만 다른 것은 없습니다.
이지만, 이 질문을 사용해서 한 를 더 .vi/vim
탭을 시각화할 수 있습니다.「 」가 vi/vim
를 인스톨 하고 , 「」를 .Makefile
vim Makefile
합니다.:set list
된 탭
%-linux: force$
^I@if [ "$(GCC_VERSION)" = "2.96" ] ; then \$
^I^Iecho ===== Generating build tree for legacy $@ architecture =====; \$
^I^I$(CONFIGURE) $(CWD) $@ legacy; \$
^Ielse \$
^I^Iecho ===== Generating build tree for $@ architecture =====; \$
^I^I$(CONFIGURE) $(CWD) $@; \$
^Ifi$
^Icd build-$@;make$
인텔리제 제품을 사용하고 계신 분은, 다음과 같은 솔루션을 이용하실 수 있습니다.
- [ Preferences ]> [ Editor ]> [ Code Style ]으로 이동합니다.
- 여기서 문제와 관련된 파일 형식을 선택해야 합니다., 의 경우 를 .
Other File Types
. - 이 열리면 .
Use tab character
Tab size
★★★★★★★★★★★★★★★★★」Indent
4시라고 하다.
추가한 탭과 새 행을 vim에서 이해할 수 있도록 하는 방법을 검색하는 경우 먼저 vim에서 탭을 사용하도록 설정해야 합니다.
하다, 하다, 하다를 사용해서 할 수 있어요.:set noet
즉, 탭을 추가하기 전에 (스페이스에서 Tab으로 전환합니다.)
^I)과 같은 상태가 됩니다.*** missing separator. Stop.
:)make 부 error 、 make 、 make 、 make 해해 error error error error 。 : )
다시 수 요.:set et
makefile 편집에 MCEDIT를 사용하는 경우.다음과 같은 마크가 표시되어야 합니다.
탭이 공백으로 대체되기 때문입니다.이 기능을 무효로 하려면 , 으로 이동합니다.
gedit->edit->설정->개요
다음 체크에서
"탭을 공백으로 바꾸기"
요점은 'HARD TAB'입니다.
- 공백 대신 TAB을 사용했는지 확인합니다.
- 해 주세요.
.vimrc
★★★★★★에set tabstop=X
-A 또는 -show-all을 사용하여 모든 것을 표시합니다.
Make 파일을 편집하는 경우:
Windows-> Preferences->General->Editor->Text Editors->Show Whitespace Characters -> Apply
또는 아래 표시된 바로 가기를 사용합니다.
아래 그림과 같이 탭은 회색 ">"로 표시되고 공간은 회색 ""로 표시됩니다.
만약 누군가가 이 문제를 발견하게 된다면
*** missing separator. Stop.
빌드 중에 경로를 다시 확인해야 합니다. "#"과 같은 특수 문자를 포함할 수 없습니다.
언급URL : https://stackoverflow.com/questions/16931770/makefile4-missing-separator-stop
'programing' 카테고리의 다른 글
C: clock()을 사용하여 멀티 스레드 프로그램의 시간을 측정합니다. (0) | 2022.07.14 |
---|---|
vue 템플릿에서 Typescript 정적 메서드 사용 (0) | 2022.07.14 |
Vuetify 색상 테마 변경이 작동하지 않음 (0) | 2022.07.14 |
ctime()에 의해 반환된 문자열에 줄바꿈이 포함되어 있는 이유는 무엇입니까? (0) | 2022.07.14 |
메서드 반환 유형을 범용으로 만들려면 어떻게 해야 합니까? (0) | 2022.07.14 |