2016-08-03 1 views
1

나는 다음과 같은 Makefile을 작성했습니다 중지 : 그것은 오류가 발생메이크 파일을 디버깅 할 수 없습니다. Makefile : 9 : *** 구분 기호가 누락되었습니다.

CC='/buildtools/toolchain/wr-x86/3.0FCScg/bin/i586-wrs-linux-gnu-gcc --sysroot=/buildtools/toolchain/wr-x86/3.0FCScg/sysroot' 
IDIR =../../../include 
CFLAGS=-I$(IDIR) 

LDIR =../../../../../../../../.debug/lib.out/public/ 
LIBS= -lmylib1 -lmylib2 -lmylib3 

myexec: my_code.c 
    $(CC) $(CFLAGS) -o myexec my_code.c 

: 나는 관련 질문 here 보았다

Makefile:9: *** missing separator. Stop 

. 탭에 문제가있을 수 있다고합니다. 나는 코드를 두 번 확인했다. 나는 공백이 아닌 탭을 사용하고 있습니다. 내가

cat -e -t -v Makefile 

을 실행할 때 나는 $CC 전에 탭이없는 의미 다음을 얻는다.

CC='/buildtools/toolchain/wr-x86/3.0FCScg/bin/i586-wrs-linux-gnu-gcc --sysroot=/buildtools/toolchain/wr-x86/3.0FCScg/sysroot'$ 
IDIR =../../../include$ 
CFLAGS=-I$(IDIR)$ 
$ 
LDIR =../../../../../../../../.debug/lib.out/public/$ 
LIBS= -lmylib1 -lmylib2 -lmylib3$ 
$ 
myexec: my_code.c$ 
    $(CC) $(CFLAGS) -o myexec my_code.c$ 

또한 .vimrc 파일을 확인했습니다. 나는 set tabstop=4입니다. 나는 이것을 제거하려고 노력했으나 오히려 상황을 더욱 악화시켰다. 그것은 나에게 오류를주고 시작 : Makefile:9: *** missing separator (did you mean TAB instead of 8 spaces?). Stop. 이는 모습입니다 :

syntax on 
colorscheme desert 
set nocompatible 
set number 
set backspace=indent,eol,start 
set autoindent 
set ruler 
set spell 
set title 
set et 
set mouse=v 
set history=100 
set tabstop=4 
+4

'et'옵션이 범인입니다. 'expandtab'의 약자로, 여러분이 원하지 않는 것입니다. '.vimrc' 파일에서 제거하십시오. 그런 다음 makefile에'$ (CC)'줄을 다시 입력하십시오. –

+1

@CraigEstey : 이것은 vim 구성을 변경할 의향이 있기 때문에 Asker에게는 의미가 있습니다. 많은 사용자들에게 대부분 vim 설정이 원하는 기본 동작이지만 때때로 비정상적인 파일에 대해서는 예외가 필요합니다. – jxh

+1

'filetype plugin indent on' 행을 추가하면 Vim이 파일 유형별 설정을로드하게되어 사용자가 원하는 일반적인 설정을 무시할 수 있습니다. – romainl

답변

2

메이크의 정확한 편집을 방지하여 vim 초기화에 뭔가가있다. 각 탭 문자가 적절한 수의 공백 문자로 확장되도록하는 expandtab 설정의 약어 인 et 인 것으로 보입니다. (.이 문제를 확인하는 크레이그 에스티 덕분에) 그러나

, 당신은 -u NONE를 사용하여 초기화 파일을 사용하지 vim을 알 수 있습니다 : 그와

vim -u NONE Makefile 

을, 당신은에서 편집 할 수 있어야한다 필요한 탭 문자.

또는, 당신은 당신의 .vimrc의 바닥에이를 추가 할 수 있습니다 : 당신이 Makefile을 편집 할 때마다 expandtab 동작을 비활성화합니다

:autocmd FileType make set noet 

합니다.

관련 문제