2014-06-20 3 views
0

필자는 만족스러운 결과를 얻은 Fortran77 컴파일러와 함께 makefile 코드를 사용했지만 인텔 포트란 컴파일러 (IFORT)와 동일한 코드를 사용하려고 시도했지만 전혀 작동하지 않습니다.ifort 컴파일러를 사용하여 makefile을 작성하는 방법은 무엇입니까?

누구든지 코드 개선에 대한 제안을 제공 할 수 있습니까?

OBJ = change.o twopt.o ddmath.o cklib.o 
f77 = pgf77 
opt = -O4   
.f.o: 
     $(f77) $(opt) -c $*.f 
stagdri: $(OBJ) 
     pgf77 -o change.exe $(OBJ) 
     strip change.exe 
+2

음 ... 무엇을 시도 했습니까? 그리고 당신이 그것을 시도했을 때 무슨 일이 일어 났습니까? – MadScientist

+0

현재 편집중인 메이크 파일을 게시물에 추가 할 수 있습니까? – casey

답변

2

이것은 매우 간단 메이크하고 필요한 유일한 진정한 변화는 f77 = ifortf77 = pfg77을 변경하는 것입니다. ifort가 -O4 옵션 (O3은 ifort에 대한 문서에서 가장 높은 레벨)을 좋아할 것인지는 잘 모르겠다. 그래서 최적화를 확실히하기 위해 변경할 수있다.

문제의 원인이 될 수있는 메이크 파일과 관련된 두 가지 다른 문제가 있습니다. 명령 줄에서 실행

  1. 인텔 컴파일러는 설치하는 스크립트에게 인텔 환경을 실행해야합니다. 프로젝트를 만들기 전에 해당 스크립트를 실행하고 있는지 확인하십시오. 리눅스에서 이것은 64 비트 환경과 기본 설치 경로에 대해 source /opt/intel/bin/compilervars.sh intel64입니다.

  2. ifort는 어떤 점에서 상당히 까다로울 수 있으며 pgf 또는 gfortran에서 허용하는 코드를 거부 할 수 있습니다. 해당되는 경우 컴파일러를 긴장시키기 위해 코드를 강화하거나 컴파일러 인수를 찾아야 할 수도 있습니다.

이러한 일반성 이상으로 특별한 도움을 제공하려면 컴파일러에서 또는 make에 의해 생성 된 실제 오류를 제공해야합니다.

+0

내 정보를 가져 주셔서 감사합니다. 하지만 난 여전히 작동하지 않습니다 ... "make -f makexx"메시지를 표시합니다 : O4 -c check.f make : O4 : 명령을 찾을 수 없음 make : [check.o] 오류 127 (무시 됨) ifort -o check.exe check.o twopt.o ddmath.o cklib.o make : ifort : 명령이 없습니다. make : *** [stagdri] 오류 127 나는 그것이 있는지 알 수 없습니다. 컴파일러의 문제? – user3758608

+0

@ user3758608 이러한 오류는 youve가 f77 변수를 엉망으로 만든 것처럼 보입니다 (사용중인 실제 makefile을 보는 데 도움이됩니다). 두 번째 오류는 컴파일러를 찾지 못해 발생합니다. 인텔 환경을 초기화 했습니까 (제 대답의 글 머리 기호 1 참조)? – casey