w4 디렉터리 밑에 foo.c 만들기
전처리기 처리를 위해 cpp -o foo.i foo.c 를 한다
gcc -S foo.i 를 통해 컴파일을 한다.
그러면 foo.s 파일과 a.out이라는 실행파일이 생긴다.
cat foo.s 를 하면 위 같은 화면이 나타난다
다음과 같이 명령을 치면 에러가 안 나타난다.
다음과 같이 명령을 치면 에러가 안 나타난다. 이 때 -Wall 은 대부분의 일반적인 문제에 대해 경고를 출력한다.
다음과 같이 명령을 치면 에러가 출력된다. unsigned int 로 정의한 x 와 int 로 정의한 y 의 타입이 다르기 때문에 그렇다.
w4 디렉터리 밑에 as -o foo.o foo.s 명령을 통해 어셈블리 코드(foo.s)를 목적 코드(foo.o)로 변환한다.
목적코드는 cat foo.o 명령을 입력해도 볼 수 없다.
다음 명령을 통해 foo.i foo.o foo.s 파일을 없앤다.
gcc -c 명령을 입력하면 컴파일 과정 3단계를 실행한다.
gcc -c 명령을 통해 c파일을 목적코드로 만든다.
다음 명령을 실행하면 아래와 같은 어셈블리 언어로 된 부분을 볼 수 있다.
foo.o 파일을 지우고 gcc -o foo foo.c 를 하면 컴파일 4단계를 생략하여 실행파일을 만든다.
gcc --print-search-dirs 명령을 통해 라이브러리 디렉터리 위치를 확인할 수 있다.
결과는 아래와 같다.
w6 디렉터리를 만든다.
w6 디렉터리 안에 diary 디렉터리를 만든다.
main.c 파일을 만든 후 아래와 같이 작성한다.
memo.c 파일을 만든 후 아래와 같이 작성한다.
calendar.c 파일을 만든 후 아래와 같이 작성한다.
diary.h 헤더파일을 만든 후 아래와 같이 작성한다.
위 명령을 통해 memo.o calendar.o main.o 목적파일을 만든다.
다음 명령을 통해 diary 실행파일을 만든다.
./diary 명령으로 실행하면 위 화면과 같이 출력된다.