Fortran 프로그램에 C++을 연결하는 것은 모든 것이 extern "C"안에 있지 않는 한 mangling이라는 이름으로 인해 불가능합니다. 또는 인터페이스 extern "C"와 구현 C++을 만들 수도 있습니다.
이것은 기존의 Fortran 라이브러리를 다른 기사의 C++ 프로그램과 연결하는 방법입니다.
1) Fortran 서브 프로그램을 작성하십시오 (예 : worker.for). 이것은 F77이므로 6 개의 선행 공백을 기억하십시오.
subroutine printhi
print *, 'it works'
end subroutine
2)이를 호출하는 C++ 프로그램을 만듭니다 (예 : boss.cpp). 참고 후행는 루틴 F77
gfortran -c worker.for
4) 구축 및 C++ 프로그램을 링크 구축 포트란 루틴 이름
#include <iostream>
// Avoid any name mangling
extern "C"
{
extern void __attribute__((stdcall)) printhi_(void);
}
int main()
{
std::cout << "Calling fortran" << std::endl;
printhi_();
std::cout << "Returned to C++" << std::endl;
}
3)에 밑줄. 포트란 라이브러리를 추가하여 포트란 특정 비트를 해결하십시오.
g++ boss.cpp worker.o -o cboss -L/usr/lib -lgfortran
5)이 하나가 C++를 호출 포트란 프로그램을위한 프로그램
./a.out
출처
2013-03-19 05:31:07
cup