상황별 오류 대처법

소스 프로그램에 아무러 에러가 없음에도 불구하고 계속 'EOF….' 에러가 난다면, 다음과 같이 해보자!
새로이 추가한 소스 파일들의 마지막 한칸 띄어준다. 예를 들어보자.

-------------------------------source-------------------------------
int a;
for
{
}
     <-- 바로 한칸을 그냥 남겨두어야 한다.

이 것은 우리가 사용하는 컴파일러(st20cc)가 특이하기 때문에 발생하는 에러이므로 크게 신경 쓰지 않아도 된다.

함수또는 변수를 인식하지 못할 때

Error-st20link-aud.tco- symbol CLKRV_DeviceName not found
st20cc: Error: in attempting to run st20link
gmake[1]: *** [top.lku] Error 1
gmake[1]: Leaving directory `C:/STM/arena_dev/obj'
gmake: *** [default] Error 2

위와 같은 에러가 났을 경우, 우선 'CLKRV_DeviceName' 가 포함되어 있거나, 정의하고 있는 파일을 찾는다.
만일 단순히 변수만 사용한다면, 헤더파일(.h)만 컴파일 하려는 파일에 추가시켜주면 된다.
이런식으로

include "aud.h"

그래도 에러가 난다면, 함수를 사용하는 경우이다.
그럴때는 makefile 에 들어있는 파일을 추가시켜 컴파일 해주어야 한다.
이런 작업은 에러가 안 날때까지 계속 반복해야 한다.

필자의 상황

나는 5517ref 아래에 있는 Testapp7 을 arena_dev 아래로 포팅시켜야 했다.
우선 Testapp7 디렉토리를 통째로 arena_dev 로 옮긴 뒤에 컴파일을 해보니 무수히 많은 에러가 발생했다. 그래서 2번의 방법으로 시도를 했다.
하지만, 에러는 좀 처럼 줄어들지 않고, 더 늘어나기만 했다.
이럴 때 해결방법은 다음과 같다.

  1. testapp7 에 있는 Makefile 과 전체 소스의 Makefile 을 비교하고, 없는 것들을 전체소스의 Makefile 에 추가시킨다.
  2. 그리고 나서 다시 컴파일 해본다. 그래도 에러가 난다면, 그것은 변수나 함수일 것이다.
  3. 에러가 나는 변수나 함수를 부르는 파일을 찾아서 그것이 실제로 arena_dev 에도 있는지 확인한다.
  4. Scart 함수가 있다면, 원래 필요가 없는 부분이므로 주석처리해주거나, 적당한 값을 준다.
  • computer/digitalarena/stv_maker_사용시_주의할_점.txt
  • Last modified: 3 years ago
  • by likewind