이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

유효하지 않은 MEX 파일 오류

MATLAB®이 MEX 파일에서 참조하는 .dll 파일을 모두 찾을 수 없으면 MEX 파일을 불러올 수 없습니다. 예를 들어, MEX 파일 A가 시스템 경로에 있지 않은 라이브러리 subA.dll에 종속되어 있다고 가정하겠습니다. L:\mylibs\ 폴더에 있는 A.mexw64를 호출하면 MATLAB에 다음이 표시됩니다.

Invalid MEX-file 'L:\mylibs\A.mexw64':
Missing dependent shared libraries
'subA.dll' required by 'L:\mylibs\A.mexw64'

공유 라이브러리에 필요한 기호가 누락된 경우 MATLAB은 다음과 유사한 메시지를 표시합니다.

Invalid MEX-file 'L:\mylibs\A.mexw64':
Missing symbol 'q' in 'L:\mylibs\subA.dll' required by L:\mylibs\A.mexw64'

라이브러리 종속성을 확인하려면 다음을 수행하십시오.

  • Windows® 시스템의 경우, 웹 사이트 http://www.dependencywalker.com에서 Dependency Walker 유틸리티를 다운로드하십시오.

  • Linux® 시스템에서는 다음을 사용하십시오.

    ldd -d libname.so
  • macOS 시스템에서는 다음을 사용하십시오.

    otool -L libname.dylib

MEX 파일이 빌드될 때 연결된 .dll 파일의 경우, 이 .dll 파일은 시스템 경로에 있거나 MEX 파일과 동일한 폴더에 있어야 합니다.

MEX 파일에 연결되지 않은 추가 라이브러리가 MEX 파일에 필요할 수도 있습니다. 이와 같이 명시적으로 불러온 라이브러리 중 하나를 찾지 못하면 MEX 파일을 불러올 수는 있지만 제대로 작동하지는 못합니다. 이와 같이 명시적으로 불러온 라이브러리를 찾는 데 사용되는 검색 경로는 라이브러리를 불러오는 코드에 의해 제어되며, MEX 파일이 포함된 폴더를 포함하지 않을 수도 있습니다. 적절한 설치 위치에 대해서는 라이브러리 문서를 참조하십시오.

다음과 같은 이유로 인해 오류가 발생할 수 있습니다.

  • MATLAB 버전 비호환성. 자세한 내용은 버전 호환성 항목을 참조하십시오.

  • 컴파일러 런타임 라이브러리가 누락됨. 시스템에 MEX 파일을 빌드하는 데 사용된 것과 동일한 컴파일러가 없는 경우, Visual C++® 재배포 가능 패키지에 대한 정보는 Microsoft® MSDN® 웹 사이트를 참조하십시오.

  • 특화된 런타임 라이브러리가 누락되거나 잘못 설치됨. MEX 파일 또는 라이브러리 공급업체에 문의하십시오.

관련 항목

외부 웹 사이트