10年以上前に作成されたmatlabのscriptを動かすことを試みています。
versionの違いやfunctionの有無などで、いくつか問題はありましたが、何とか解決できたと思っています。しかし、最後まで解決できない問題があります。

matlab scriptから*cpp/*hで書かれたファイルのfunctionを呼び込むことができずに困っています。自分の理解では、matlab scriptからcppファイル(例えばAviReadMex.cpp)を呼ぶためには、mexというfunctionを使う必要があると思います。

そこで、

mex AviReadMex.cpp

を行ったところ、
以下のようなエラーが出てきました。

Building with 'MinGW64 Compiler (C++)'.
Error using mex
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0xeb): undefined reference to
`CVideo::CVideo()'
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0xff): undefined reference to
`CVideo::OpenVideo(char const*)'
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0x10c): undefined reference to
`CVideo::GetCodec() const'
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0x133): undefined reference to
`CVideo::CloseVideo()'
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0x1a5): undefined reference to
`CVideo::GetHeight() const'
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0x1b4): undefined reference to
`CVideo::GetWidth() const'
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0x21b): undefined reference to
`CVideo::GetDataImage(unsigned char*, int) const'
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0x242): undefined reference to
`CVideo::CloseVideo()'
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0x24b): undefined reference to
`CVideo::~CVideo()'
C:\Users\AKIHIR~1\AppData\Local\Temp\mex_156313621567061_1472\AviReadMex.obj:AviReadMex.cpp:(.text+0x259): undefined reference to
`CVideo::~CVideo()'
collect2.exe: error: ld returned 1 exit status

AviReaderMex.cppには

CVideo AviVideo;

という行がありますので、ここが原因だと思いっています。

AviReaderMex.cppのlibraryを読みこむセクションには、

#include <mex.h>
#include "Video.h"
#define NUMBER_OF_FIELDS 2

です。
AviReaderMed.cppと同じfolderの中に、Video.cppとVideo.hもあります。

ちなみに、

mex Video.cpp

とやりますと、AviReaderMex.cpp内のfunctionが足りないとエラーが出ます。

一つ疑問に思うところは、そのfolderは"C:\Users\AKIHIR~1\AppData\Local\Temp"とは別のところに存在しているのに、なぜこのfolderが読み込まれているのかが理解できません。

どなたかエラーの原因の解決方法をお知りの方がおりましたら、ご教授をお願いします。

使用環境は、
OS: Windows10
Matlab version: R2017b
です。

よろしくお願いいたします。