링크 단계에서 정의되지 않은 참조 오류가있는 경우에도 SDCC (iCal) 파일에서 ihx (Intel Hex) 파일을 생성합니다. 이 동작은 Makefile에서 SDCC를 사용할 때 ihx 파일을 make 대상으로 설정하면 make가 링크시 이전 시도가 실패했음을 알리는 좋은 방법이 없기 때문에 문제가 발생합니다.링크 단계에서 Makefile에서 SDCC를 사용할 때의 문제
연결하는 동안 정의되지 않은 참조가있을 때 SDCC에서 ihx 출력을 억제하도록하는 방법이 있습니까? 그렇지 않은 경우 가장 좋은 해결 방법은 무엇입니까? (이미 하나 생각했습니다).
또한 에 관심이 있습니다. SDCC는 누구나 알고있는 것처럼 설계되었습니다. 여기
문제의 예 : 당신은에서 test.ihx 구축을위한 간단한 Makefile을 가지고
void foo();
void main()
{
foo();
}
:
당신은 정의되지 않은 함수를 호출 TEST.C라는 파일이 TEST.C :
test.ihx: test.c
sdcc test.c
당신은 처음 TEST.C 컴파일을 시도하며 실패
C:\test>make
sdcc test.c
?ASlink-Warning-Undefined Global '_foo' referenced by module 'test'
make: *** [test.ihx] Error 1
당신은 (예 : 메이크 같은) IHX의 종속성 아닌 무언가를 변경하여 문제를 해결하고 다시 컴파일하려고 시도 :
C:\test>make
make: `test.ihx' is up to date.
을하지만 시도하지 않습니다 확인 SDCC가 이미 ihx 파일을 만들었 기 때문에 컴파일하십시오.
멋지다. 해결 방법이 내 것보다 낫다. –