2010-01-06 4 views
5

일부 기존 Fortran 코드를 Visual Studio C++ 프로젝트에 연결하려고합니다. 정적 라이브러리를 빌드하기 위해 gfortran의 Windows 빌드를 사용해 보았지만 Visual Studio는 해결되지 않은 외부 심볼에 대해 불평합니다. mingw와 visual studio 컴파일러를 섞는 것은 끔찍하고 끔찍한 생각이기 때문에 이것이라고 생각합니다.무료/오픈 소스 Windows Fortran 컴파일러 Visual Studio와 호환

나는 조금 봤 거든 내 옵션은 Intel'sLahey's 컴파일러지만 둘 다 무거운 가격표를 가지고 있습니다.

다른 옵션이나 다른 방법을 알고있는 사람이 있습니까? 코멘트

내가지고있어 오류에 대한 응답으로

편집은 다음과 같습니다

오류 7 오류 LNK2019 : 확인되지 않은 외부 기호 기능에 를 참조 ___chkstk FMM

주위를 검색하면 this으로 연결되며, 이는 단지 나쁜 생각 같아.

+0

Visual C++는 다른 컴파일러의 DLL에 연결할 수 있으므로 얻는 오류는 무엇입니까? 그것들은 런타임 라이브러리 또는'_your_fortran_function' 또는 맹 글링 된 이름으로 기능합니까? –

+0

나는 우리에게 오류를 보여주기위한 제안을 초. Fortran 컴파일러는 일반적으로 C 루틴과의 충돌을 피하기 위해 루틴 이름을 언더 스코어로 이름을 변경합니다. Fortran과 C/C++를 결합하기 위해이를 대체해야 할 수도 있습니다. 최근 관련 질문 : http://stackoverflow.com/questions/1985819/gfortran-dll-underscore –

+0

@Pete 및 @ M.S.B, 위의 편집 참조. 감사합니다. – Mark

답변

2

구식 경로로 가서 f2c을 사용하여 기존 Fortran을 MSFT 도구 모음으로 빌드 할 수있는 표준 K & R C로 번역 할 수 있습니다.

나는 많은 달에 f2c을 사용하지 않았으며, 일하기가 다소 고심하고 고통 스러웠다. g77 및 이후 gfortan이 훨씬 좋아 졌으므로 사용할 필요가 거의 없었습니다.

귀하의 기존 요구 사항에 따르면 이는 적합하다고들합니다. Wikipedia entry on f2c에는 f2c sources에 대한 링크가 Netlib에 있습니다.

편집 : 이것은 런타임 요구 사항에서 당신을 자유롭게하지는 못합니다 - C++ 응용 프로그램을 f2c 런타임에 연결해야 할 수도 있습니다.

+0

@Dirk, 훌륭한 아이디어. 추가 연결없이 실제로 작동했는데 필요한 것은 f2c.h뿐이었습니다. 괜찮으 시다면 아직 답변을 수락하지 않으므로 답변이 더 게시되는지 확인하고 싶습니다. 감사! – Mark

+0

흥미 롭습니다. 제가 말했듯이, 저는 많은 달 전에 그것을 사용했고 대부분 리눅스에서 -lf2c로 연결하는 것이 긴장되었습니다. 어쩌면 프론트 엔드가 더 좋아 졌거나 더 완벽 해 졌거나 MSFT 라이브러리로 운이 좋았을 것입니다. –