2017-01-19 1 views
2

일부 Fortran 서브 루틴을 프로그래밍했습니다. 서브 루틴을 subroutines이라는 데스크탑 폴더에 저장했습니다. 나는 포트란 프로그램을 컴파일 할 때, (subroutines가 아닌 다른 폴더에있는) main.f90 말, 그 폴더 subroutines, 나는 같은 컴파일 후 main.f90의 폴더에 사본 각 서브 루틴이 필요하고 (예를 들어 sub1.f90, sub2.f90) 서브 루틴을 사용하여 이 :gfortran에는 서브 루틴이 포함 된 디렉토리가 포함됩니다.

원하는 실행 파일을 출력

gfortran -o main main.f90 sub1.f90 sub2.f90

.

내 질문은 : main.f90의 폴더에 각 서브 루틴을 복사 할 필요없이 subroutine 폴더 에서 파일을 포함하는 gfortran의 모든 컴파일러 옵션이 있습니까? (gfortran: No such file or directory

내 PC에서 사용할 수있는 유일한 포트란 컴파일러는 gfortran입니다 :이 컴파일러 옵션을 모두 오류를 반환

gfortran -L/home/user/Desktop/subroutines -o main main.f90 sub1.f90 sub2.f90

gfortran -I/home/user/Desktop/subroutines -o main main.f90 sub1.f90 sub2.f90

:

나는이 두 가지 옵션을 시도 없음).

+0

각'.f90' 파일을 별도로 컴파일 한 다음 마지막으로 링크하는 것이 더 나을 것입니다. '-I' 플래그는 포함 파일과 모듈 파일의 검색 경로와 관련이 있습니다. – francescalus

+0

Youbare는 make 나 더 나은 현대적인 대안 같은 빌드 시스템을 찾고있을 것입니다. –

답변

0

단순히 서브 루틴 파일의 전체 경로를 입력 할 수 있습니다.

gfortran -o main main.f90 subroutines/sub1.f90 subroutines/sub2.f90 

하거나 전화를 할 수있는 영리한 방법은 중괄호 첫 번째 합병증 I와 동일하게 확대 할 경우 너무

gfortran -o main main.f90 subroutines/{sub1,sub2}.f90 

로 확장을 사용하는 것입니다 그래서 당신은 당신의 편집을 증대 것 보여 주다.

+0

감사합니다. 언급 한 두 번째 방법을 알지 못했습니다. 이것은 매우 유용했습니다. – Sergio

관련 문제