목적파일
컴파일러는 프로그래밍 언어(고급언어)를 기계어로 목적파일을 생성해줍니다.
c언어의 경우 main.c라는 소스파일이 있다면, main.obj라는 목적파일이 생성됩니다.
링크 또는 링킹
여러개의 목적 파일을 연결해서 하나의 실행파일을 생성해주는 과정을 의미합니다.
이 과정에서 참조하는 여러 라이브러리를 포함시킵니다.
이러한 역할을 하는 프로그램을 링커 라고 합니다.
비주얼스튜디오의 빌드
컴파일과 링크 과정을 하나로 합친 메뉴. 빌드 성공시 .exe파일 생성됨.(또는 .dll, .com 등)
실행파일명 = 프로젝트의 이름
오류 또는 에러
프로그램 개발 과정에서 나타나는 모든 문제는 에러라고 함
발생 시점에 따른 구분
- 컴파일 오류: 개발환경에서 오류 내용과 위치를 어느정도 알려주므로 수정하기 용이함
- 링크 오류: main() 함수 이름이나 라이브러리 함수 이름을 잘못 기술하여 발생
- 실행 오류: 실행 중 오류로 실행이 중지됨
원인과 성격에 따른 구분
- 구문 오류(syntax error) 또는 문법 오류: 언어 문법을 잘못 기술
- 논리 오류(logic error): 내부 로직이 잘못되거나 결과가 안나오는 오류
디버깅
다양한 오류를 찾아 소스를 수정하며 컴파일, 링크, 실행하는 과정
컴파일 오류 -> 에러 메시지를 보고 소스 수정
링크 오류 -> 링크 에러 메시지를 참조하여 소스 수정
실행 오류 -> 결과를 보고 로직 오류를 찾아 소스 수정
각 오류는 반드시 모두 소스코드 수정 후 컴파일->링크->실행을 반드시 수행해야 함.
디버깅의 유래
1947년 9월 9일 해군 호퍼 중위 컴퓨터가 갑자기 작동 멈춤.
컴퓨터 패널의 릴레이에 실제로 나방이 끼어있었음. 나방을 제거하고 정상 작동
-> Bug를 잡는 과정을 DEBUG라고 명명됨.
C언어 작성 시 주의점
#include <stdio.h> // 전처리 부분이고 컴파일 전에 처리됨. ;는 없어야 함.
int main() // 프로젝트 마다 main은 단 하나만 있어야 함.
{
printf("hello, world!"); // 각 문장은 ; 가 있어야 함.
return 0;
}
기타
SW개발 5단계
- 요구분석
- 설계
- 구현
- 검증
- 유지보수
라이브러리
다른 전문가가 자주 사용하는 기능의 단위 프로그램을 이미 만들어 놓은 모듈(module)
개발자마다 새로 작성할 필요없이 이미 만들어 놓은 라이브러리를 사용
단위프로그램
- C는 함수중심 java는 클래스 중심
솔루션: 각 프로젝트를 모아 놓은 폴더.
프로젝트: 하나의 프로젝트는 하나의 main()함수 만을 구성.
'Language > C언어' 카테고리의 다른 글
C언어 개요와 특징 (0) | 2024.09.09 |
---|
남에게 설명할 때 비로소 자신의 지식이 된다.
포스팅이 도움되셨다면 하트❤️ 또는 구독👍🏻 부탁드립니다!! 잘못된 정보가 있다면 댓글로 알려주세요.