Study/IT & Computer

컴파일, 컴파일러, 링크 그리고 GNU, G++, GCC 간략 정리

13.d_dk 2023. 5. 15. 21:04
728x90
반응형

compile

  • source code를 computer가 이해할 수 있게 작업
  • 컴파일은 컴퓨터가 이해할 수 있는 형식으로 고급 프로그래밍 언어의 소스 코드를 변환하는 프로세스
  • 컴파일러는 이 프로세스를 수행하는 프로그램
  • 컴파일러는 소스 코드를 토큰이라는 작은 단위로 분해함
  • 그런 다음 토큰을 구문 분석하여 문법 오류가 있는지 확인
  • 문법 오류가 없으면 컴파일러는 토큰을 기계어 명령이라는 컴퓨터가 이해할 수 있는 형식으로 변환
  • 마지막으로 컴파일러는 기계어 명령을 오브젝트 파일이라는 파일에 저장함
  • 오브젝트 파일은 링커를 사용하여 실행 파일이라는 하나의 파일로 결합할 수 있음
  • 실행 파일은 컴퓨터에서 실행할 수 있는 프로그램임

 

Linking (링크, 링킹, 링커 등)

  • 여러 개체 파일을 하나의 실행 파일로 결합하는 프로세스
  • 서로 다른 파일과 위치에 있는 함수 및 클래스를 결합하는 작업
  • 링커는 각 개체 파일의 기계어 명령을 취하여 하나의 실행 파일로 결합함
  • 또 각 개체 파일에 필요한 라이브러리를 연결

 

GNU compiler

  • GNU project로 제작된 compiler
  • GNU 컴파일러(GCC)는 GNU 프로젝트에서 개발한 컴파일러 제품군
  • C, C++, Objective-C, Fortran, Java, Ada, Pascal, Go 및 MIPS assembly를 포함한 다양한 프로그래밍 언어를 지원
  • GCC는 무료 오픈 소스 소프트웨어이며 Linux, Unix 및 Windows를 포함한 다양한 운영 체제에서 사용할 수 있음

 

GNU project

  • GNU 프로젝트는 자유 소프트웨어 개발을 촉진하기 위해 Richard Stallman이 시작한 프로젝트
  • 간단히 말하면 개인이나 단체에 구속되지 않는 자유를 바탕으로 하는 프로젝트
  • GNU 프로젝트의 목표는 자유롭고 개방적인 운영 체제인 GNU 운영 체제를 만들고 유지하는 것
  • GNU 프로젝트는 GCC 및 기타 많은 자유 소프트웨어 프로그램과 라이브러리를 개발

 

GCC

  • GCC는 GNU Compiler Collection의 약자임
  • C, C++, Objective-C, Fortran, Ada, Go, D 및 Java를 포함한 다양한 프로그래밍 언어를 컴파일하는 데에 사용할 수 있는 무료 오픈 소스 컴파일러
  • 1987년 Richard Stallman이 처음 개발했으며 GNU 프로젝트의 일부임

 

G++

  • G++는 GNU C++의 컴파일러이며 GCC의 C++ 구현
  • C++ 프로그램을 컴파일하고 링크하는 데 사용할 수 있음
  • G++는 GNU 프로젝트에서 개발하고 유지 관리함

 

MinGW64

  • linux에서 G++ 지원함 windows에서는 MinGW64를 사용할 수 있음
반응형