2014-09-10 3 views
1

난 단지 VIM과 Makefile을 사용하는 데비안에서, SDCC 다음과 같은 코드를 컴파일하기 위해 노력하고있어에 그림에 대한 SDCC 간단한 코드를 컴파일 할 수 없습니다 아직 일하고있어. 나는이 같은 Makefile을 사용하고 있습니다 :는 데비안

# GNU/Linux specific Make directives. 

# Declare tools. 
SHELL = /bin/sh 
CC = sdcc 
LD = gplink 
ECHO = @echo 

MCU = 16f88 
ARCH = pic14 

CFLAGS = -m$(ARCH) -p$(MCU) 
LDFLAGS = -c -r -w -m I /usr/share/sdcc/lib/$(ARCH)/ 

EXECUTABLE = t1 

SOURCES = test2.c 
OBJECTS = $(SOURCES:.c=.o) 
CLEANFILES = test2.o test2.asm test2.map test2.lst 

.SUFFIXES: .c .o 
.PHONY: clean 

# Compile 
all: $(EXECUTABLE) 

.c.o: 
    $(AT) $(CC) $(CFLAGS) -o $*.o -c $< 

$(EXECUTABLE): $(OBJECTS) 
    $(AT) $(LD) $(LDFLAGS) $(OBJECTS) -o $(EXECUTABLE) 

clean: 
    $(AT) rm -rf $(CLEANFILES) 

을이 모든 후 출력을 메이크 파일을 실행 한 후 것은 : 나는 같은 결과보다 복잡한 코드를 시도

sdcc -mpic14 -p16f88 -o test2.o -c test2.c 
gplink -c -r -w -m I /usr/share/sdcc/lib/pic14/ test2.o -o t1 
make: *** [t1] Segmentation fault 

, 내가 할 수있는 ' 뭐가 잘못 됐는지 보지, 누구?

답변

1

내가 당신에게 문제의 원인이 될 수있는 몇 가지를 참조하십시오 당신이 찍어 SDCC를 사용하기위한 컴파일하면 일부 PIC 헤더 파일은 GPL 호환되지 않는 특수 마이크로 칩 라이센스를 가지고 있기 때문에

  • , 당신은 옵션 --use-non-free 필요 . 또한 --use-non-free은 리포지토리에서 SDCC를 설치 한 경우 자유 정책으로 인해 데비안에서 사용하지 못할 수 있습니다. official website에서 최신 SDCC를 설치해야합니다.

  • 연결 단계에서 실행하는 데 필요한 PIC 라이브러리를 포함해야합니다. sdcc -mpic14 -p16f88 --use-non-free -V test2.c을 실행 해보십시오. 이렇게하면 SDCC가 자동으로 연결되고 -V (자세한 정보 표시)을 사용하면 어셈블러 및 링커에 대한 호출을 볼 수 있으며 링크에 추가 된 라이브러리를 볼 수 있습니다.