1. 컴파일러
GNU cc - gcc가 널리 사용
http://gcc.gnu.org에서 다운받아 설치할 수 있다.
단일 모듈 프로그램
예제 9.1 프로그램은 입력을 받으면서 입력된 줄 중에서 가장 긴 줄을 longest[] 배열에 복사하고
최종적으로 입력된 모든 줄 중에서 가장 긴 줄을 프린트
longest.c
#include <stdio.h>
#define MAXLINE 100
void copy(char from[], char to[]);
char line[MAXLINE]; // 입력 줄
char longest[MAXLINE]; // 가장 긴 줄
/* 입력된 줄 가운데 가장 긴 줄을 프린트한다 */
main() {
int len;
int max;
max = 0;
while(gets(line) != NULL) {
len = strlen(line);
if (len > max) {
max = len;
copy(line, longest);
}
}
if (max >0) // 입력 줄이 있었다면
printf("%s,", longest);
return 0;
}
/* copy: from을 to에 복사; to가 충분히 크다고 가정 */
void copy(char from[], char to[]) {
int i;
i = 0;
while ( (to[i] = from[i]) != '\0')
++i;
}
$cc [-옵션] 파일
$gcc [-옵션] 파일
가장 간단한 사용법은 옵션을 사용하지 않고 컴파일
longest.c를 컴파일하면 목적 파일 longest.o를 만들고, 실행 파일 a.out을 만든다
$gcc -c longest.c
- 목적 파일 longest.o를 만들지만 실행 파일은 만들지 않는다
$gcc -o longest longest.o
- 목적 파일을 실행 파일로
$gcc longest
- 실행 파일 실행
$gcc -o longest longest.c
- 목적 파일을 만들고 실행 파일을 만드는 과정을 한 번에
$gcc -O -o longest longest.c
- -O : 최적화 옵션
$gcc -S longest.c
- 어셈블리어 프로그램 longest.s 파일을 생성
$gcc -o math -lm math.c
- -l 옵션을 사용하여 특정 라이브러리를 링크할 수 있다.
- -lxxx는 (보통 /user/lib 디렉토리에 있는) 라이브러리 libxxx.a를 링크하라는 의미
- 예를 들어 math.c 프로그램이 수학 라이브러리(libm.a)를 사용한다면 위와 같이 -lm 옵션을 이용하여 libm.a를 링크할 수 있다
'IT > 리눅스' 카테고리의 다른 글
4. 인터넷 (0) | 2016.06.30 |
---|---|
2. 기초 지식 (0) | 2016.06.30 |
1. 설치 및 기본 명령어 (0) | 2016.06.30 |