주요 콘텐츠

배포용 애플리케이션에서 공유 라이브러리 호출하기

MATLAB®loadlibrary 함수를 사용하면 공유 라이브러리를 MATLAB에 불러올 수 있습니다.

컴파일된 애플리케이션에서는 헤더 파일을 사용하여 라이브러리를 불러올 수 없습니다. 따라서 헤더 파일과 함께 loadlibrary 함수를 사용하는 애플리케이션을 만들려면 다음 단계를 따르십시오.

  1. 프로토타입 MATLAB 파일을 만듭니다. 다음 구문으로 loadlibrary를 호출한다고 가정하겠습니다.

    loadlibrary(library, header)

    MATLAB에서 다음 명령을 한 번만 실행하여 프로토타입 파일을 만듭니다.

    loadlibrary(library, header, 'mfilename', 'mylibrarymfile'); 
    그러면 현재 폴더에 mylibrarymfile.m이 생성됩니다. Windows®를 사용 중인 경우 현재 폴더에 library_thunk_pcwin64.dll이라는 다른 파일도 생성됩니다.

  2. MATLAB에서 loadlibrary에 대한 호출을 다음과 같이 변경합니다.

    loadlibrary(library, @mylibrarymfile)

  3. 애플리케이션을 컴파일하고 배포합니다.

    • 배포용 애플리케이션에 라이브러리를 통합하는 경우, mcc 명령의 -a 옵션을 사용하여 library_thunk_pcwin64.dll(생성된 경우)과 함께 라이브러리의 .dll을 지정합니다. 컴파일러 앱을 사용하는 경우 앱의 애플리케이션을 실행하기 위해 필요한 파일 섹션에 .dll 파일을 추가합니다.

    • 배포용 애플리케이션과 통합되지 않은 외부 파일로 라이브러리를 제공하는 경우, 라이브러리 .dll 파일을 컴파일된 애플리케이션과 동일한 폴더에 배치합니다. Windows를 사용 중인 경우 library_thunk_pcwin64.dll을 컴파일용 애플리케이션에 통합해야 합니다.

      이 접근 방식의 이점은 배포용 애플리케이션을 다시 컴파일하지 않고도 라이브러리를 업데이트된 버전으로 바꿀 수 있다는 것입니다. 라이브러리를 다른 버전으로 바꾸는 것은 라이브러리 내 함수의 함수 시그니처가 변경되지 않는 경우에만 가능합니다. 이는 mylibrarymfile.mlibrary_thunk_pcwin64.dll이 라이브러리 내 함수의 함수 시그니처에 연결되어 있기 때문입니다.

참고

MATLAB으로 빌드한 공유 라이브러리는 MATLAB 내부에서 loadlibrary를 사용하여 불러올 수 없습니다. loadlibrary에 대한 자세한 내용은 Limitations to Shared Library Support 항목을 참조하십시오.

참고

운영 체제에는 지정된 Windows 운영 체제 모듈을 호출 프로세스의 주소 공간으로 불러오는 loadlibrary 함수가 있습니다.

참고 항목

도움말 항목