정적 라이브러리 사용법 좀 알려주세요.
글쓴이: ninakhlee / 작성시간: 금, 2003/01/10 - 11:52오전
정적 라이브러리의 함수를 사용하고싶은데요.
헤더파일 include할때는 경로같은거 적어주지 않고 하고 싶거든요.
정적 라이브러리를 만들었는데요.
그 정적 라이브러리의 함수를 사용하려고 다음과 같이 했더니
아래와 같은 에러가 나요.
main.c:2:18: test.h: No such file or directory
main.c 내용은 다음과 같습니다.
#include <stdio.h> #include "test.h" int main() { printf("Hello\n"); sip_test(); return 0; }
컴파일은 다음과 같이 했습니다.
우선 정적 라이브러리의 이름은 libtest.a이구요. 위치는 test입니다.
정적 라이브러리 헤더파일의 위치는 test 디렉토리입니다.
정적 라이브러리르 구성하는 소스파일은 test.o
main.c의 위치는 test 디렉토리보다 하나 상위입니다.
gcc -g -Itest -o main main.o test.o -ltest -Ltest
실제로는 make를 사용해서 컴파일 했어요.
꼭 좀 알려주세요.. ^^* 감사합니다.
Forums:
main.c:2:18: test.h: No such file or dir
main.c:2:18: test.h: No such file or directory
와 같은 에러는 헤더를 찾지 못했다는 이야기이니(컴파일)
님께서 질문하신 정적 라이브러리는 그 다음 이야기죠.. (링크)
main.c 가 있는 디렉토리에 test.h 라는 헤더가 없는 경우일 것 같군요
-I<헤더가 있는 디렉토리>
를 컴파일 할 때 붙여 주시면 되겠군요..
-L<라이브러리가 있는 디렉토리> -l<lib 를 뺀 라이브러리 이름>
해주시면 라이브러리가 링크 됩니다.
그리고 test.o 로 정적 라이브러리 libtest.a 를 만드셨다면
컴파일시 -ltest 를 해 주시면 test.o 를 해 줄 필요가 없습니다.
댓글 달기