티스토리 뷰

Study/Linux

[APUE] compile with libraryfile

생각많은 소심남 2013. 12. 8. 17:19

이전에 source를 빌드하는 방법을 소개했었는데 제대로 make가 됬다면 lib폴더 내에 libapue.a라는 파일이 생성된다.



그런데 아마 1장을 해본 사람이라면 알겠지만 처음부터 이런 오류가 나올 것이다.



말은 즉, header 파일 참고해가면서 위 함수를 찾아봤는데 정의가 없더라는 것이다. 그래서 이때 위에서 생성된 libapue.a 파일이 필요하다.

잠깐 설명을 하자면 *.a 파일은 archive 파일이다. 그말이 어렵다면 정적 라이브러리라는 말은 들어봤을 것이다. 그게 이 파일인데, 사실 이 파일안에 위에서 오류가 난 err_sys, err_ret 함수가 정의되어 있다. 그래서 위의 예시에 나온 c 코드를 컴파일하기 위해서는 정적라이브러리를 추가해서 컴파일을 해줘야 한다. 이 때 필요한 전처리 옵션이 몇가지가 있다. 간단히 소개하면

- I : 자신이 추가할 헤더파일이 있는 폴더 지정

- L : 라이브러리 폴더 지정

- l : 추가할 라이브러리 파일 지정


그래서 이 옵션들을 지정해야 libapue.a 파일을 컴파일때 추가할 수 있다.

 


참고로 지금 working folder의 상위에 header file의 폴더가 있고, 그 폴더내에서 libapue라는 파일을 찾겠다는 것이다. 이렇게 하면 예제 파일 실습도 쉽게 할 수 있을 것이다.

댓글