[FORTRAN] Shared Library 생성하기
자주 쓰는 함수나 루틴들은 공유라이브러리로 만들어 놓은 다음 사용하면 여러가지로 편의성을 제공합니다. 공유라이브러리는 Mac OS : *.dylib, Windows : *.dll, Linux : *.so 의 확장자를 갖습니다. 다음 예제를 통하여 공유라이브러리 코드작성법과 컴파일 방법을 알아봅시다.
1. Main : test.f90
PROGRAM MAIN
!DEC$ ATTRIBUTES DLLIMPORT::HELLODLLRUTINE1
!DEC$ ATTRIBUTES DLLIMPORT::HELLODLLRUTINE2
CALL HELLODLLRUTINE1()
CALL HELLODLLRUTINE2()
END PROGRAM
2. Shared Library 1 : testdll1.f90
SUBROUTINE HELLODLLRUTINE1()
!DEC$ ATTRIBUTES DLLEXPORT::HELLODLLRUTINE1
PRINT *, "HELLO WORLD FROM FIRST SHARED LIBRARY"
END SUBROUTINE
3. Shared Library 2 : testdll2.f90
SUBROUTINE HELLODLLRUTINE2()
!DEC$ ATTRIBUTES DLLEXPORT::HELLODLLRUTINE2
PRINT *, "HELLO WORLD FROM SECOND SHARED LIBRARY"
END SUBROUTINE
4. Compile
-Mac OS
$ gfortran -c testdll1.f90 testdll2.f90
$ gfortran -c testdll1.f90 testdll2.f90
$ gfortran -shared -o testdll.dylib testdll1.o testdll2.o
$ gfortran test.f90 testdll.dylib
-Linux
$ gfortran -c testdll1.f90 testdll2.f90
$ gfortran -c testdll1.f90 testdll2.f90
$ gfortran -shared -o testdll.so testdll1.o testdll2.o
$ gfortran test.f90 testdll.so
-Windows
$ gfortran -c testdll1.f90 testdll2.f90
$ gfortran -c testdll1.f90 testdll2.f90
$ gfortran -shared -o testdll.dll testdll1.o testdll2.o
$ gfortran test.f90 testdll.dll
Intel Fortran 에서의 컴파일은 다음 문서를 참고하세요.
- Mac & Linux : https://software.intel.com/en-us/node/691876
- Windows : https://software.intel.com/en-us/node/535304
- Mac & Linux : https://software.intel.com/en-us/node/691876
- Windows : https://software.intel.com/en-us/node/535304
댓글
댓글 쓰기