2014-03-19 2 views
2

makefile에서 변수를 정의하려고 시도하고 해당 변수의 설정 여부에 따라 Fortran 루틴에서 컴파일되는 코드 블록을 변경하십시오. =makefile에서 변수를 정의한 다음 Fortran 코드 내에서 사용하는 방법

MYVAR=1 
all: 
    ifort temp.F90 -fpp 
    echo $(MYVAR) 

라인이 올바르게 그러나 1. 인쇄, 테스트 프로그램이이를 설정 컴파일 할 때 :

program test 
    implicit none 
    integer :: a 
#ifdef MYVAR 
    a = 1 
#else 
    a = 0 
#endif 
    write(*,*) a 
end program test 

내 메이크 파일은 다음과 같습니다

간단한 예를 나는 작업을 얻을 수 없다 0. MYVAR을 인식하도록 포트란 코드를 얻으려면 어떻게해야합니까? 당신은 그냥 정의 여부를 확인하기 때문에,

all: 
    ifort -DMYVAR=1 temp.F90 -fpp 
    echo $(MYVAR) 

을 또는 :

답변

0

당신이 필요로하는 추가 플래그를 추가하려면

OPTIONS = -DMYVAR=$(MYVAR) 

그리고 나서

all: 
    ifort $(OPTIONS) <file.f90> -fpp 

그리고 잘 가야합니다.

+1

좋아요! 나는 당신과 알렉산더의 조합을 사용했습니다. 빠른 답변 주셔서 감사합니다. –

0

당신은 -D를 사용하여 (Makefile의) 컴파일시 변수를 지정해야합니다

all: 
    ifort -DMYVAR temp.F90 -fpp 
    echo $(MYVAR) 
+1

좋아요! 나는 당신과 Kyles의 조합을 사용했습니다. 빠른 답변 주셔서 감사합니다. –

관련 문제