본문 바로가기
HPC

GNU Compiler (gcc, g++, gfortran)

by Yoon_estar 2024. 4. 12.
728x90
반응형

GNU Compiler (gcc, g++, gfortran)

GNU Compiler Collection (GCC)는 프로그래밍 언어 C, C++, Objective-C, Fortran, Ada, Go, D 등을 위한 컴파일러 모음입니다. GNU 프로젝트의 일환으로 개발되었으며, Richard Stallman이 처음 발표한 이후 오픈 소스 커뮤니티에 의해 지속적으로 발전해 왔습니다. GCC는 자유 소프트웨어 재단(FSF)에 의해 관리되며, GNU 일반 공중 사용 허가서(GPL) 하에 배포됩니다. 이는 GCC를 무료로 사용, 공유, 수정할 수 있음을 의미합니다.

주요 구성 요소

  • gcc: C 언어를 위한 컴파일러입니다. GNU 프로젝트의 핵심 컴포넌트 중 하나로, 다양한 아키텍처와 운영 체제에서 C 언어 코드를 컴파일할 수 있습니다.
  • g++: C++ 언어를 위한 컴파일러입니다. C++의 다양한 표준을 지원하며, 템플릿, 예외 처리, 네임스페이스 등 C++의 고급 기능을 모두 사용할 수 있습니다.
  • gfortran: Fortran 언어를 위한 컴파일러입니다. Fortran 77부터 최신 Fortran 표준까지 넓은 범위의 Fortran 코드를 컴파일할 수 있습니다.

GCC의 특징 및 장점

  1. 다양한 플랫폼 지원: GCC는 다양한 운영 체제와 하드웨어 아키텍처에서 사용할 수 있습니다. 이는 GCC를 크로스-컴파일러로 활용할 수 있게 하여, 한 플랫폼에서 다른 플랫폼을 위한 코드를 컴파일할 수 있습니다.
  2. 표준 준수: GCC는 여러 프로그래밍 언어의 최신 표준을 지원하며, 엄격한 표준 준수를 위해 지속적으로 업데이트됩니다.
  3. 최적화 기능: GCC는 코드 최적화를 위한 다양한 옵션을 제공합니다. 이를 통해 실행 속도를 향상시키거나 메모리 사용을 최소화할 수 있습니다.
  4. 디버깅 및 오류 진단: GCC는 GDB(GNU Debugger)와 통합되어 강력한 디버깅 기능을 제공합니다. 또한, 오류 메시지와 경고를 통해 코드의 잠재적인 문제를 식별할 수 있도록 돕습니다.
  5. 확장성: GCC는 여러 언어 및 아키텍처를 지원하기 위해 모듈식 구조를 채택하고 있습니다. 이는 새로운 언어나 타겟 아키텍처를 쉽게 추가할 수 있음을 의미합니다.

사용 사례

GCC는 운영 체제 개발, 임베디드 시스템, 고성능 컴퓨팅, 일반 애플리케이션 개발 등 다양한 분야에서 널리 사용됩니다. 오픈 소스 프로젝트부터 상업적 소프트웨어 개발까지, GCC는 강력하고 유연한 컴파일러 솔루션으로서 개발자 커뮤니티에 광범위하게 채택되어 있습니다.

GCC 버전 확인

  • RHEL 8.x 계열의 기본 GNU Compiler 버전은 8.5입니다.
# gcc --version
---------------------
gcc (GCC) 8.5.0 20210514 (Red Hat 8.5.0-10)
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

상위 GCC 버전 설치

  • 이번 포스팅에서는 gcc-11.4.0 버전으로 설치하였다.

설치

# yum install gmp-devel mpfr-devel libmpc-devel isl-devel

# wget <https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz>
# tar -xvzf gcc-11.4.0.tar.gz
# cd gcc-11.4.0
# ./contrib/download_prerequisites     # 이 단계에서 인터넷이 필요하다.
# mkdir build ; cd build
# ../configure --prefix=/APP/enhpc/compiler/gnu/v11.4 \\
--disable-multilib --enable-languages=c,c++,fortran \\
--build=x86_64-linux-gnu --host=x86_64-linux-gnu \\
--target=x86_64-linux-gnu --enable-checking=release
# make && make install

 

profile 환경 설정

# vi /APP/enhpc/profile.d/gnu_gcc.v11.sh
---
#!/bin/sh
export GCC11_ROOT=/APP/enhpc/compiler/gnu/v11.4
export PATH=${GCC11_ROOT}/bin:$PATH
export LD_LIBRARY_PATH=${GCC11_ROOT}/lib64:${GCC11_ROOT}/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=${GCC11_ROOT}/lib64/pkgconfig
---

# source /APP/enhpc/profile.d/gnu_gcc.v11.sh

# which gcc
# which g++
# which gfortran 

 

반응형

'HPC' 카테고리의 다른 글

Openblas(고성능 수학 라이브러리의 핵심) 설치  (0) 2024.04.16
VASP(vasp.6.3.0) + ONEAPI2023(intel64_v2023)  (0) 2024.04.15
Intel OneAPI  (0) 2024.04.13
fftw 라이브러리  (0) 2024.04.11
LAMMPS  (0) 2024.02.27