주요 콘텐츠

MATLAB 코드를 사용하여 C 공유 라이브러리 만들기

지원되는 플랫폼: Windows®, Linux®, Mac

이 예제에서는 MATLAB® 함수를 사용하여 C 공유 라이브러리를 만드는 방법을 보여줍니다. 타깃 시스템에는 라이선스가 부여된 MATLAB이 필요하지 않습니다.

MATLAB에서 함수 만들기

  1. MATLAB에서, 패키징하려는 MATLAB 코드를 검토합니다.

    이 예제에서는 MATLAB과 함께 제공되는 matrix 폴더를 작업 폴더로 복사합니다.

    copyfile(fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix'),'matrix')

    작업 폴더의 새 matrix 하위 폴더로 이동합니다.

  2. 함수 addmatrix.m, multiplymatrix.m, eigmatrix.m을 검토하고 테스트합니다.

     addmatrix.m

    MATLAB 명령 프롬프트에 addmatrix([1 4 7; 2 5 8; 3 6 9], [1 4 7; 2 5 8; 3 6 9])를 입력합니다.

    출력값은 다음과 같습니다.

     ans =
         2     8    14
         4    10    16
         6    12    18

     multiplymatrix.m

    MATLAB 명령 프롬프트에 multiplymatrix([1 4 7; 2 5 8; 3 6 9], [1 4 7; 2 5 8; 3 6 9])를 입력합니다.

    출력값은 다음과 같습니다.

     ans =
        30    66   102
        36    81   126
        42    96   150

     eigmatrix.m

    MATLAB 명령 프롬프트에 eigmatrix([1 4 7; 2 5 8; 3 6 9])를 입력합니다.

    출력값은 다음과 같습니다.

     ans =
       16.1168
       -1.1168
       -0.0000
    

compiler.build.cSharedLibrary를 사용하여 C 공유 라이브러리 만들기

  • compiler.build.cSharedLibrary 함수를 사용하여 C 공유 라이브러리를 빌드합니다. 이름-값 인수를 사용하여 라이브러리 이름을 지정하고 세부 정보 출력을 활성화합니다.

    buildResults = compiler.build.cSharedLibrary(["addmatrix.m", ...
    "eigmatrix.m","multiplymatrix.m"], ...
    'LibraryName','libmatrix', ...
    'Verbose','on');

    compiler.build 명령에서 이름-값 인수를 사용하여 추가 옵션을 지정할 수 있습니다. 자세한 내용은 compiler.build.cSharedLibrary 항목을 참조하십시오.

    compiler.build.Results 객체 buildResults에는 빌드 유형, 생성된 파일, 포함된 지원 패키지, 빌드 옵션에 대한 정보가 포함됩니다.

    이 함수는 현재 작업 디렉터리에 있는 libmatrixcSharedLibrary라는 이름의 폴더 내에 다음 파일을 생성합니다.

    • GettingStarted.html — 공유 라이브러리 통합에 대한 정보가 포함되어 있는 HTML 파일.

    • includedSupportPackages.txt — 라이브러리에 포함된 모든 지원 파일을 나열하는 텍스트 파일.

    • libmatrix.c — C 소스 코드 파일.

    • libmatrix.def — 링커에 모듈 정보를 제공하는 모듈 정의 파일.

    • libmatrix.dll — 동적 연결 라이브러리 파일.

    • libmatrix.exports — 모든 비정적 함수 이름이 포함된 파일을 내보냅니다.

    • libmatrix.h — C 헤더 파일.

    • libmatrix.lib — 가져오기 라이브러리 파일. Mac에서는 파일 확장자가 .dylib이고 Linux에서는 .so입니다.

    • mccExcludedFiles.log — 애플리케이션에 포함되지 않은 툴박스 함수 목록이 포함되어 있는 로그 파일. 지원되지 않는 함수에 대한 자세한 내용은 MATLAB Compiler 제한 사항 항목을 참조하십시오.

    • readme.txt — 패키징 정보가 포함되어 있는 텍스트 파일.

    • requiredMCRProducts.txtMATLAB Runtime에서 애플리케이션을 실행하는 데 필요한 제품의 제품 ID가 포함되어 있는 텍스트 파일.

    • unresolvedSymbols.txt — 연결이 맺어지지 않은 기호에 대한 정보가 포함되어 있는 텍스트 파일.

    참고

    생성된 라이브러리는 MATLAB Runtime 또는 인스톨러를 포함하지 않습니다. buildResults 객체를 사용하여 인스톨러를 만들려면 compiler.package.installer 항목을 참조하십시오.

C 공유 라이브러리를 C 애플리케이션에 구현하기

C 공유 라이브러리를 패키징하고 나면, C 애플리케이션에서 이 라이브러리를 호출할 수 있습니다. C 애플리케이션 코드가 공유 라이브러리에 포함된 함수를 호출합니다.

  1. matlabroot\extern\examples\compilersdk\c_cpp\matrix 또는 작업 폴더에 있는 matrix.c 파일을 찾습니다.

     matrix.c

    이 파일을 복사하여 C 라이브러리 파일(Windows의 경우 libmatrix.lib, Mac의 경우 libmatrix.dylib, Linux의 경우 libmatrix.so)이 포함된 폴더에 붙여 넣습니다.

  2. MATLAB 명령 프롬프트에서, matrix.c를 복사한 폴더로 이동합니다.

  3. mbuild를 사용하여 애플리케이션을 컴파일하고 링크합니다.

    mbuild matrix.c libmatrix.<ext>
  4. Linux 또는 Mac 시스템에서 애플리케이션을 실행하려면 먼저 라이브러리 경로에 MATLAB Runtime을 추가해야 합니다. 자세한 내용은 배포를 위한 MATLAB Runtime 경로 설정 항목을 참조하십시오.

  5. 시스템 명령 프롬프트에서 애플리케이션을 실행합니다. Windows에서는 슬래시를 백슬래시(\)로 바꾸십시오.

    ./matrix
    The sum of the matrix with itself is: 
    2.00		8.00		14.00	 
    4.00		10.00		16.00	 
    6.00		12.00		18.00	 
     
    The product of the matrix with itself is: 
    30.00		66.00		102.00	 
    36.00		81.00		126.00	 
    42.00		96.00		150.00		 
     
    The eigenvalues of the original matrix are: 
    16.12		-1.12		-0.00

    참고

    Linux 또는 Mac 시스템에서는 애플리케이션에 실행 권한을 부여해야 할 수 있습니다.

    chmod u+x matrix

참고 항목

|

도움말 항목