리눅스에서 gcc로 c언어 컴파일하기
리눅스에서 hello world를 출력하는 간단한 C 코드를 컴파일 하고 실행하는 예제 링크 입니다. 리눅스에서 gcc로 c언어 컴파일하기
간단한 코드의 경우 gcc 명령어를 바로 사용하여 빌드 할 수 있습니다. 하지만 소스코드가 많은 경우 일일이 gcc 명령어를 통해 컴파일 하는것은 무리가 있습니다. make 명령어를 사용하면 효과적으로 소스코드를 빌드 할 수 있습니다.
본 개발자 문서에서는 Makefile을 통해 C,Fortran 코드를 빌드 할 수 있는 예제 소스를 제공하고 있습니다.
gcc 컴파일러
EDISON 서버에 기본으로 설치되어 있는 gcc version은 4.4.7 입니다. gcc -v
명령어를 통해 버전을 확인할 수 있습니다.
[edison@edison ~]$ gcc -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
그 외 버전이 필요한 경우 module avail
명령어를 통해 이용 가능한 gcc 리스트를 확인하고, module load gcc/[버전]
명렁어를 통해 사용할 수 있습니다.
[edison@bulb etc]# module avail
-------------------------------------- /usr/share/Modules/modulefiles --------------------------------------
dot module-git module-info modules null use.own
--------------------------------------------- /etc/modulefiles ---------------------------------------------
R/3.3.2 gcc/5.5.0 intel/mkl openmpi-1.8-x86_64
R/3.3.3(default) gnuplot/4.6.3 mpi/gnu/openmpi-1.6.5 openmpi-x86_64
gamess/gamess gnuplot/5.0.6(default) mpi/intel/mpich-1.2.7p1 petsc/3.9.3
gcc/4.9.4 intel/2018 mpich-x86_64 python/3.6.3
gcc/5.3.0 intel/2018-mpi octave/4.0.3
gcc/5.4.0 intel/intel_11 openmpi/2.1.2
[edison@bulb ~]$ module load gcc/5.3.0
[edison@bulb ~]$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/SYSTEM/gcc-5.3.0/build/bin/../libexec/gcc/x86_64-unknown-linux-gnu/5.3.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ./configure --prefix=/SYSTEM_BULB/gcc-5.3.0/build
Thread model: posix
gcc version 5.3.0 (GCC)
[edison@bulb ~]$