Linux 에서 의 C 개발 GCC 의 초급 사용

<span style="font-family: Arial, Helvetica, sans-serif; "><span style="white-space:pre">	</span>Linux  C  ,   win   C      ,      ,     ,         GCC     (   ),      !!</span>

많은 사람들의 느낌, 특히 win 플랫폼 을 떠 나 리 눅 스 플랫폼 에서 C 코드 를 쓸 때 VIM 편집기 에 익숙해 진 후에 코드 를 처음 쓰 는 느낌 은...다 를 거 없어.혹은 전설 처럼 그렇게 신 비 롭 지 않 은 것 같 아 요. 맞아요. 저도 처음에 이 느낌 이 었 어 요. 사실 그 건 할 줄 아 는 것 이 너무 적기 때 문 이에 요.GCC 라 는 말 에 얼마나 많은 풋내기 들 이 능숙 하 게 사용 합 니까?익숙 하면 위 에서 말 한 느낌 을 사용 하지 않 고 같은 글자 만 말 할 수 있다. 시원 하 다.
직접 예 를 들 면, 구체 적 인 코드 는 너무 많이 쓰 고 싶 지 않다. 왜냐하면 나 도 다른 사람의 코드 에서 가 져 왔 기 때문이다.스스로 정 리 를 하 는 거 예요.
예 를 들 어 우 리 는 main 방법 을 써 서 두 정수 의 크기 를 비교 하려 면 각각 두 가지 방법 으로 호출 할 수 있 습 니 다. 각각 max (int a, int b) 와 min (int a, int b) 입 니 다. 최초의 모델 은 우 리 는 보통 이 몇 가지 방법 을 같은 c 파일 에 쓰 는 것 입 니 다. 이것 은 맞 습 니 다. 그러나 만약 에 우리 가 수천 만 개의 이런 방법 으로 호출 하 라 고 하면...너 는 스스로 파일 에 써 야 하 니?틀림없이 적합 하지 않 을 것 입 니 다. 가장 좋 은 방법 은 바로 이렇게 많은 방법 입 니 다. 서로 다른 사람 이 쓴 것 입 니 다. 서로 다른 파일 에 넣 으 면 하나의 방법 일 수도 있 습 니 다. 이렇게 일렬 로 열 려 있 습 니 다. 그러면 우 리 는 어떻게 해야만 gcc 를 통 해 이런 방법 을 호출 할 수 있 습 니까?
  , min.c,max.c        hello.c
  。。
gcc -c max.c
gcc -c min.c
  :gcc -c max.c min.c
      ,   :
max.o,min.o     
  :
gcc max.o min.o hello.c -o hello.out
  hello.out  (       )
  :./hello.out 
    

이 상황 을 몇 만 가지 방법 문서 로 보충 하 다.컴 파일 만 해도 귀찮아 죽 겠 어 요. 잘못 하면 다시...그럼 문제 가 생 겼 는데 어 떡 하지?바로 make 도구 입 니 다. 이 도 구 는 매우 강력 합 니 다. 제 가 일부 기능 만 사용 할 수 있 을 정도 로 강력 합 니 다. 어디 가 불편 하고 어디 가 불편 한 지 에 이 르 지 못 했 습 니 다.그래, 어떻게 쓰 지?그것 은 바로 먼저 규칙 을 정의 한 다음 에 make 입 니 다. 규칙 은 어디에서 정의 합 니까?Makefile 파일 에 규칙 을 어떻게 쓰 죠?
간단 합 니 다. 목표: 의존, 다음 줄 TAB 들 여 쓰기 후 명령 추가
 
#this is makefile
hello.out:max.o min.o hello.c<TAB>gcc max.o min.o hello.c -o hello.out
max.o:max.c<TAB>gcc -c max.c
min.o:min.c<TAB>gcc -c min.c

이것 이 바로 Makefile 파일 의 내용 입 니 다. 그리고 우 리 는 직접 셸 에서 make 명령 을 실행 하면 됩 니 다. 이 규칙 에 따라 실행 할 수 있 습 니 다. 그러면 세 번 째 줄 에서 문제 가 있 을 수 있 습 니 다. 만약 에 몇 만 개의 파일 이 당신 에 게 쓰 라 고 하면 귀 찮 지 않 겠 습 니까?당연히 간단 한 방법 이 있 지...리 눅 스 는 게 으 른 사람 을 위 한...... 로 바꾸다
#this is makefile
hello.out:max.o min.o hello.c<TAB>gcc $^ -o $@
max.o:max.c<TAB>gcc -c max.c
min.o:min.c<TAB>gcc -c min.c

변 화 를 눈치 채 셨 나 요? $^모든 의존 을 나타 내 는 여러 가지. o 파일 을 말 합 니 다. $@ 은 목표 파일 을 말 합 니 다. 바로 위의 hello. out 입 니 다. 가장 잘 하 는 것 도 make 실행 이면 됩 니 다. 여기 서 장점 은 사용자 입력 의 복잡성 을 간소화 하 는 것 입 니 다. 또 하나의 장점 은 하나의 문 서 를 변경 할 때마다. o 파일 이 존재 하면 중복 컴 파일 을 하지 않 고 효율 을 높 인 다 는 것 입 니 다.
참고 로 리 눅 스 의 파 이 프 를 말씀 드 리 겠 습 니 다. 리 눅 스 의 IPC (프로 세 스 간 통신) 체 제 는 주로 신호, 파이프, IO 리 셋, share 메모리 와 소켓 등 이 있 습 니 다. 우리 가 자주 사용 하 는 것 은 파이프 와 IO 리 셋 입 니 다. 파 이 프 는 바로 '|' 입 니 다. 이 세로 줄 은 바로 파이프 입 니 다. 리 셋 방향 은 '>,', ',' 등 기호 입 니 다. '>' 와 '>' 의 차 이 는 하 나 는 덮어 쓰 는 것 입 니 다.다른 하 나 는 파일 뒤에 추 가 된 것 입 니까? 아니면 파이프 입 니까? 우리 가 프로그램 을 쓸 때 한 가지 상황 에 부 딪 힐 수 있 습 니 다. 바로 이전 함수 의 출력 이 다음 함수 의 입력 입 니 다. 이런 상황 에서 다시 프로 그래 밍 을 하려 면 시간 효율 이 높 지 않 고 파이프 가 좋 은 방법 을 제공 하지만 입력 과 출력 에 주의해 야 합 니 다.최소한 유형 과 수량 이 일치 해 야 사용 할 수 있 습 니 다. 예 를 들 어 하나의 avg 방법 은 평균 수 (총 과 개 수 를 입력 해 야 합 니 다) 를 통계 합 니 다. 하나의 sum 방법 은 입력 에 따라 총 과 개 수 를 통계 합 니 다. 그러나 이 두 가지 방법 은 두 개의 서로 다른 파일 에서 나 온 것 입 니 다. 즉, 가장 나중에 발생 하 는 실행 가능 한 파일 은 avg. out 과 sum. out 입 니 다.(다른 이름 도 스스로 정의 할 수 있 습 니 다. 여 기 는 예 를 들 어 설명 할 뿐 입 니 다) sum 의 출력 을 avg 의 입력 에 직접 넣 으 려 면 어떻게 합 니까? 파 이 프 를 통 해 어떻게 합 니까? 구체 적 인 방법 은 명령 행 입력 입 니 다. / sum. out |. / avg. out, ok 실행 (이 두 파일 은 하나의 목록 에 넣 어야 합 니 다.).........................................................................................................
그 다음 에 gdb 와 ddd 등 도구 의 사용 을 실천 해 야 합 니 다. 천천히 배 워 보 세 요. 같이 힘 내세 요.
리 눅 스 학습 망

좋은 웹페이지 즐겨찾기