환경 변수

환경 변수

환경 변수로 gfortran의 동작을 바꿀 수 있을까요? 답은 '크게는 아니지만, 컴파일된 프로그램의 실행 시점에는 그렇다'예요. gfortran 자체가 쓰는 환경 변수와, GNU Fortran으로 컴파일한 프로그램이 실행될 때 영향을 주는 환경 변수를 이 장에서 정리할게요.

출처: Environment Variables (The GNU Fortran Compiler)

본문

gfortran 컴파일러는 현재 gcc의 동작에 영향을 주는 환경 변수들 외에, 그 자체의 동작을 제어하기 위한 환경 변수를 전혀 사용하지 않아요.

환경 변수에 대한 정보는 컴파일러 모음(GCC) 사용법(Using the GNU Compiler Collection (GCC))의 '환경 변수(GCC)' 장을 참고하세요.

GNU Fortran으로 컴파일된 프로그램의 실행 시점(run-time) 동작에 영향을 주는 환경 변수에 대해서는 Runtime: Runtime 동작을 환경 변수로 조절하기 문서를 참고하세요.

즉, 말하자면 컴파일 단계에서 gfortran을 조종할 수 있는 gfortran 고유의 환경 변수는 없어요. 대신 실행된 프로그램(런타임) 쪽에서 환경 변수로 I/O 변환이나 각종 런타임 동작을 바꿀 수 있어요. 예를 들어 비정형 I/O 변환을 설정하는 GFORTRAN_CONVERT_UNIT 같은 변수가 대표적이에요.

다만 컴파일러 호출 환경 전체를 봤을 때는 GCC가 쓰는 환경 변수들이 여전히 작용해요. 예를 들어 라이브러리나 실행 파일을 찾는 데 영향을 주는 PATH, 빌드 중 임시 파일 위치를 정하는 TMPDIR 같은 변수는 gfortran도 gcc 드라이버를 거치며 자연스럽게 함께 적용돼요. 그래서 'gfortran 전용 환경 변수는 없다'는 말은, gfortran 자체의 컴파일 동작을 별도 옵션처럼 바꿔주는 변수가 없다는 의미로 받아들이면 정확해요.

실행 시점 동작은 매뉴얼의 Runtime 문서에서 다루는 환경 변수들로 조절할 수 있어요. 컴파일된 프로그램이 링크하는 런타임 라이브러리(libgfortran)가 그 변수들을 읽어 동작을 바꾸는 구조예요.

더 알아보기