오늘은 unix 고급 프로그래밍 에서 컴파일 하는법을 배우겠습니다
일단 컴파일 하는 법을 배우겠습니다
일단 www.apuebook.com 에서 소스를 다운받습니다
자 이제 정리를 하자면
1. tar 로 묶인 파일을 tar 명령으로 압축을 풉니다
--> tar xvfz src.tar.gz
이렇게 실행하면 압축이 풀리고 apue.2e 폴더가 생기게 됩니다
2. cd apue.2e
apue.2e 폴더로 들어갑니다
3. Make.defines.linux 파일을 열어 WKDIR 경로를 apue.2e 디렉토리의 풀패스의 경로로 변경합니다
즉 apue.2e 폴더에서 pwd 명령을 수행했을때 나오는 절대경로를 쓰라는 말입니다
4. make
만약 중간에 ARG_MAX 가 정의 되지 않아서 오류가 발생하는경우는
apue.2e/threadctl/getenv1.c 와 apue.2e/threadctl/getenv3.c/getenv3.c 파일을열어서
#include<limits.h> 를 #include<linux/limits.h> 로 변경한후
다시 make 하면 잘 될겁니다
5. make 가 무사히 끝나면
./lib 에 libapue.a 파일이 생성됩니다
생성된 ./lib/libapue.a 와 ./include/apue.h 를 이용해서 컴파일 하시면 됩니다
---------------------------------------------------------------------------------------
자 그럼 진짜로 되는지 소스파일을 컴파일 해봅시다
저는 책의 맨처음 예제인 myls.c 파일을 컴파일 해보겠습니다
이 파일인데요 말그대로 ls 역할을 하는 코드를 구현하는 겁니다
잘 됩니다
여기서 중요한점은 gcc myls.c -o myls -I(이부분은 대문자 아이)./ -L. -l(이부분은 소문자 엘) apue 이라는 점입니다
gcc 옵션을 보면 뒤에가 뭘 의미하는지 잘 아실거라고 봅니다
수고하셨습니다
일단 컴파일 하는 법을 배우겠습니다
일단 www.apuebook.com 에서 소스를 다운받습니다
자 이제 정리를 하자면
1. tar 로 묶인 파일을 tar 명령으로 압축을 풉니다
--> tar xvfz src.tar.gz
이렇게 실행하면 압축이 풀리고 apue.2e 폴더가 생기게 됩니다
2. cd apue.2e
apue.2e 폴더로 들어갑니다
3. Make.defines.linux 파일을 열어 WKDIR 경로를 apue.2e 디렉토리의 풀패스의 경로로 변경합니다
즉 apue.2e 폴더에서 pwd 명령을 수행했을때 나오는 절대경로를 쓰라는 말입니다
4. make
만약 중간에 ARG_MAX 가 정의 되지 않아서 오류가 발생하는경우는
apue.2e/threadctl/getenv1.c 와 apue.2e/threadctl/getenv3.c/getenv3.c 파일을열어서
#include<limits.h> 를 #include<linux/limits.h> 로 변경한후
다시 make 하면 잘 될겁니다
5. make 가 무사히 끝나면
./lib 에 libapue.a 파일이 생성됩니다
생성된 ./lib/libapue.a 와 ./include/apue.h 를 이용해서 컴파일 하시면 됩니다
---------------------------------------------------------------------------------------
자 그럼 진짜로 되는지 소스파일을 컴파일 해봅시다
저는 책의 맨처음 예제인 myls.c 파일을 컴파일 해보겠습니다
이 파일인데요 말그대로 ls 역할을 하는 코드를 구현하는 겁니다
잘 됩니다
여기서 중요한점은 gcc myls.c -o myls -I(이부분은 대문자 아이)./ -L. -l(이부분은 소문자 엘) apue 이라는 점입니다
gcc 옵션을 보면 뒤에가 뭘 의미하는지 잘 아실거라고 봅니다
수고하셨습니다
'programmming tips' 카테고리의 다른 글
각종 시험의 덤프 사이트 올라와 있는 사이트 (0) | 2012.09.18 |
---|---|
#ifdef 와 #endif 이해하기 (0) | 2011.07.26 |
man pages (0) | 2011.07.26 |
int main(int argc, char *argv[]) 이해하기 (0) | 2011.07.26 |