2011-11-22 4 views
0

(* .mat 파일에서 데이터를 추출하기 위해) MATLAB에서 제공하는 C 라이브러리를 사용하는 코드를 작성하고 있습니다. 내 IDE (Code :: Blocks)에는 필요한 "mat.h"가 들어있는 폴더가 네트워크 드라이브에 포함되어 있습니다. 내 코드는 mat.h에서 정의한 형식을 인식하지만, 파일에서 함수를 호출 할 때마다 "정의되지 않은 참조"오류가 발생합니다. MathWorks에서 제공하는 예제 코드와 동일한 경우입니다. 어떤 종류의 문제가 대개이 원인입니까?typedef가 포함되어 있지만 함수가 아닙니다.

#include "mat.h" 
int main (void) { 
    MATFile *pmat; // Compiles only when compiler is told to search in mat.h directory 
    pmat = matOpen("example_filename", "r"); // Never compiles 
    return 0; 
} 

고마워요! 카메론

답변

0

mat.h의 내용을 확인 했습니까? matOpen()을 신고합니까? 또한 컴파일 또는 링크 할 때 오류가 발생합니까? 링크 단계에서 실행하는 경우 matOpen() (Windows에서는 .lib, Unix에서는 .a) 구현을 포함하는 라이브러리를 참조해야합니다. .h 파일은 함수 만 선언합니다.

+0

감사합니다. 예, 링커 문제였습니다. – user1060598

2

"정의되지 않은 참조"는 일반적으로 링커 오류입니다. 헤더 파일의 문제는 아닙니다. MATLAB의 라이브러리 (또는 전용 객체)를 프로그램에 링크하도록 링커에 지시해야합니다.

Code :: Blocks에서 어떻게 수행되는지 모르겠습니다. Code : Blocks 문서에는 here으로 설명되어 있습니다.

+0

네, 링커 문제였습니다. – user1060598