[완료] proc make 실행시 에러발생.. ㅠ.ㅠ
Makefile 실행시 에러가 발생합니다... 에러 메세지는 다음과 같습니다.
오브젝트 파일은 제가 임의로 xxx 라 표현한거구요...
개별적인 proc 실행은 정상적으로 됐습니다.
./inc/Oracle 에는 precomp 의 public 데이터를 복사해 넣었습니다.
그리고 ./lib/Oracle 에는 libclntsh.a 파일을 복사해주었습니다.
오브젝트 파일 다 생성후 마지막 ld 작업시 에러가 발생합니다.
이런 경험이 있으셨던분 있으시면 도움 부탁드립니다.
몇일동안 삽질중입니다.. ㅠ.ㅠ
g++ -o hptest ./src/xxx.o ./src/xxx.o ./src/xxx.o ./src/xxx.o ./src/xxx.o -g -Wall -I./inc/Oracle -L./lib/Oracle -lclntsh -L/usr/lib -lpthread -lnsl -lm -ldl -L./lib -lio -llsocket
ld: 0711-224 WARNING: Duplicate symbol: thread_creds_t
ld: 0711-224 WARNING: Duplicate symbol: _GLOBAL__F_thread_creds_t
ld: 0711-224 WARNING: Duplicate symbol: sqlca
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-317 ERROR: Undefined symbol: .sqlcxt
collect2: ld returned 8 exit status
make: *** [hptest] Error 1
참고로 proc 실행은 다음과 같이 실행했습니다.
proc PARSE=NONE CODE=CPP CPP_SUFFIX=cc iname=src/xxx.pc
g++ -O2 -g -c -I./inc -I./inc/Protocol -I./inc/DB -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D_CLIENT -Wall -I./inc/Oracle src/xxx.cc -o src/xxx.o
자답입니다.
우선 컴파일 한 서버가 AIX 5.3 인데 64 Bit 입니다.
그래서 $ORACLE_HOME/lib 의 clntch 라이브러리를 링크한 후
64 Bit 옵션인 -maix64 옵션을 주어 컴파일 하니 에러가 없어졌습니다.
몇일동안 IBM 사이트를 뒤지다가 찾았습니다.
혹시 저와 같이 고생하시는 분들이 계실거 같아 남겨놓습니다.
그럼 즐프하세요...
댓글 달기