gcc 2.7.2는 디폴트로 새로운 ELF 포맷으로 컴파일해 줍니다. 그리고 라이브러리들이 구 버전 aout 포맷으로 링크되어 있으면 이것이 삭제되지 않습니다.
이 경우 모든 옵젝트 파일들이 aout 포맷으로 변환되어야 합니다. 이렇게 해 주기 위해서는 다음 컴파일러 스위치를 설정해 줍니다.
컴파일시
-b i486-linuxaout링크시
-mi386linux
gcc에 대한 링크가 콜된 다음에는 다음을 입력해 줍니다.
-b i486-linuxaout
이제 aout 라이브러리 libsql.a가 링크가 되고 prog_elf 대신에 prog_aout가 동작하게 됩니다.
all: prog_aout prog_elf
prog_elf: yardtest.c Makefile
gcc -c -I/usr/lib/YARD/include yardtest.c -o yardtest.o
gcc -L/lib yardtest.o /usr/lib/YARD/lib/libsql.a \
/usr/lib/YARD/lib/libbasic.a /usr/lib/YARD/lib/sqlnetd.a -o $@
file $@
ldd $@
prog_aout: yardtest.c Makefile
gcc -b i486-linuxaout -c -I/usr/lib/YARD/include yardtest.c \
-o yardtest.o
gcc -b i486-linuxaout -L/lib yardtest.o /usr/lib/YARD/lib/libsql.a \
/usr/lib/YARD/lib/libbasic.a \
/usr/lib/YARD/lib/sqlnetd.a -o $@
file $@
ldd $@
키워드: GCC, LINK, AOUT, ELF, LINUXAOUT, COMPILE
SDB-kfr_29, Copyright SuSE Linux AG, Nrnberg, Germany
- 버전: 02. Mr 2001
SuSE Linux AG - 최근에 만들어진 : 07. Mr 2001 에 의해 kmyoo (sdb_gen 1.40.0)