소프트웨어 빌드
소스 코드 파일로부터 실행가능한 프로그램 또는 라이브러리를 만들어가는 과정
- HELLO.C (Source file)
- compile
- hello.o (object file)
- Link
- hello (executable File)
리눅스에서 C/C++ 언어를 이용한 프로그램 개발에는 make 또는 autotools가 가장 널리 사용됩니다.
JAVA의 경우 ant, gradle, maven이 주로 사용됨
IDE (Integrated Development Environment)
IDE는 Build 기능을 겸하기도 하지만 주로 코드 개발에 초점을 맞춥니다. (코드 작성, 컴파일, 링크, 디버깅 등)
리눅스용 C / C++ IDE들
- KDevelop : 간단한 구성, 대규모 프로젝트에 적합
- Eclipse : 환경 구성이 복잡
- NetBeans : 실행이 느림
- CodeBlocks : 작은 프로젝트에 적합
- Anjuta
gcc & g++
- GNU Compiler Collection & GNU C Compiler
- g++은 GNU C++ Compiler
- gcc는 .c.cpp 확장자의 소스 파일을 각각 C와 C++언어로 컴파일한후 C 라이브러리와 링크
- g++은 모두 C++ 언어로 컴파일하고 C++ 라이브러리와 링크
gcc 명령
형식
- gcc [옵션] 소스파일리스트
- 옵션
- -c : 컴파일만 수행 링크하지 않음
- -o <file> : 실행 결과를 <file> 이름으로 저장
- -g : 디버깅용 코드 생성
- -O : 코드 최적화 수준 지정
- -I : 표준 헤더파일 이외의 헤더파일들이 있는 디렉토리들을 지정
- -| : 링크할 라이브러리를 지정
- -Wall : 더욱 많은 경고 메세지 출력
리눅스의 C 라이브러리
C 라이브러리 이외에도 수천가지 다양한 라이브러리가 사용가능,
libfoo : 미리 컴파일된 응용을 실행하기 위한 용도
libfoo-dev : 헤더 파일, 소스파일 등 이 라이브러리에 의존하는 프로그램을 빌드하는데 필요한 파일들을 포함하는 패키지
라이브러리 사용하기
1. 소스코드에 사용할 라이브러리의 헤더 파일을 include 합니다.
#include <foo.h> 혹은 #include <foo/foo.h> 이 헤더 파일들은 보통 /usr/include/에 있음
2. 각 라이브러리에 대한 문서를 참조
/usr/share/doc/<package>
3. 라이브러리에 사용하는 프로그램의 컴파일
컴파일러 헤더 파일과 라이브러리의 위치를 제공해야함, 가장 쉬운 방법은 pkg-config를 사용하는 것. 대부분의 라이브러리들이 지원함
gcc -o test test.c $(pkg-config --cflags --libs )
4. 디폴트로 라이브러리와 동적으로 링크됨
'IT 프로그래밍 > 오픈소스소프트웨어' 카테고리의 다른 글
[오픈소스 소프트웨어] 10-2 프로그램 개발 (1) | 2024.10.15 |
---|---|
[오픈소스소프트웨어] chap10.1 C, C++ 개발 (0) | 2024.10.14 |
[오픈소스소프트웨어] chap 9.5 파일 속성 검사 (0) | 2024.10.14 |
[오픈소스소프트웨어] chap 9-2 쉘 변수 (0) | 2024.10.14 |
[오픈소스소프트웨어] 9.1 쉘 프로그래밍 (0) | 2024.10.13 |