pro*c 컴파일 에러 질문입니다.
글쓴이: redpig / 작성시간: 화, 2010/12/21 - 9:42오전
define.h
#define VAR_LEN 10
test.pc
#include define.h EXEC SQL BEGIN DECLARE SECTION; char strVar[VAR_LEN]; EXEC SQL END DECLARE SECTION;
위 소스를 컴파일하면 proc 컴파일러가
PCC-S-02322, found undefined identifier
이런 에러가 나면서 컴파일이 안되는데요..
호스트 변수를 char strVar[10] 이렇게 수정하면 컴파일이 잘됩니다.
근데 왜 위처럼 하면 컴파일이 안되는걸까요?
여기저기 검색해봐서 컴파일 옵션에 parse=none을 줘봐도..
#include define.h 대신에 EXEC SQL INCLUDE define.h; 이렇게 수정해봐도 같은 에러가 나던데요..
예전 기억엔 저게 특별히 문제되지 않았던것 같은데 도무지 왜 컴파일 에러가 나는지 모르겠네요.
Forums:
파일경로나 make 을 살펴보셔야할듯. 또한 디파인을
파일경로나 make 을 살펴보셔야할듯.
또한 디파인을 .pc 내에다가 정의해서 컴파일되나 해보세요.
define 부분을 sql include로 하시든지요..
define부분을
EXEC SQL INCLUDE define.h;
이렇게 처리하시거나.. 아니면 declare section 안으로 가지고 들어오면 됩니다. ^^
nls_lang 설정을 확인해보세요
오라클 설정중에 NLS_LANG 값을 확인해보세요. 만약 proc 소스코드가 utf-8로 되어 있는 경우, nls_lang 도 utf-8 이 맞아야 됩니다. 이게 어긋나면 이런 엉뚱한 undefined identifier에러가 납니다. 제경우엔, 동일한 코드를 다른 장비에서 컴파일 했을때 발생했습니다. nls_lang을 동일하게 수정해서 해결했고요.. oracle 황당하죠..
#include define.h
로 한번 테스트해보세요. define된게 제대로 동작하는지.
제생각에는 define.h로 된 파일이 많아서 원하는 파일을 제대로 include를 하지 않은게 아닌가 합니다.
댓글 달기