본문 바로가기

포트란

cmake를 이용한 포트란으로 작성한 여러 소스 파일 컴파일하기

(1) cmake 파일을 다음과 같은 사이트에서 다운로드한다.

     위치 : https://cmake.org/download/

(2) 터미널에서 다음과 같이 입력하여 cmake를 설치한다.

      $ sh cmake-3.29.0-rc2-linux-x86_64.sh

(3) .bashrc 에 cmake가 설치된 경로 설정을 한다.

PATH="/home/swkoo/cmake/bin:$PATH"
export PATH

(4) CMakeLists.txt 파일을 생성하여 다음과 같이 입력한다.

CMAKE_MINIMUM_REQUIRED(VERSION 3.11)
PROJECT(TEST)
ADD_EXECUTABLE( test.exe test.f90 )
ENABLE_LANGUAGE(Fortran)
SET ( CMAKE_FORTRAN_COMPILER "ifx" )
ADD_COMPILE_OPTIONS ( -g -O0 -Wall )

* ADD_EXECUTABLE 함수를 변경하면 여러개의 문서 파일을 컴파일 할 수 있다. 예를 들어 다음과 같이 test1.f90, test2.f90, test3.f90 파일을 추가하면 여러개의 파일을 실행파일인 test.exe로 컴파일한다.

ADD_EXECUTABLE( test.exe test1.f90 test2.f90 test3.f90 )

(5) 터미널에서 다음과 같이 입력하면 Makefile이 생성된다.

      $ cmake CMakeLists.txt

(6) 터미널에서 make 명령어를 치면 Makefile에 설정된 내용에 따라 실행파일인 test.exe가 생성된다.

*터미널에서 한 줄로 여러 소스 파일을 컴파일 하는 방법이 있다. 다음과 같이 입력한다. (cmake를 이용해 만든 test.exe 파일은 디버깅이 되지 않는다. 터미널에서 직접 인력하면 geany에서 디버깅 작업을 할 수 있다.)

 $ ifx -g -O0 test1.f90 test2.f90 test3.f90 -o test.exe

 

 

* bash 셸의 alias 기능을 이용하면 명령어 입력을 간단하게 할 수 있다.

(1) 터미널에서 홈 디렉토리에 있는 .bashrc 파일을 열어서 다음과 같이 추가한다.

     alias ifx_ex='ifx -g -O0 test1.f90 test2.f90 test3.f90 -o test.exe'

(2) 다음과 같이 입력해서 .bashrc 설정을 불러들인다.

     $ source ~/.bashrc

(3) 터미널에서 ifx_ex 를 입력해서 컴파일 한다.

 

<참고>

*gcc 컴파일러인 경우 CMakeLists.txt 파일의 설정은 다음과 같다.

CMAKE_MINIMUM_REQUIRED(VERSION 3.2)
PROJECT(TEST)
ADD_EXECUTABLE( test.exe test1.cpp test2.cpp )
ENABLE_LANGUAGE(CXX)
SET ( CMAKE_CXX_COMPILER "gcc" )
ADD_COMPILE_OPTIONS ( -g -Wall )