最近在看matlab code時,因爲本人使用的是64系統,而code中的mex文件時在32位系統上編譯的,因此須要從新本身編譯maxflowmex.cpp,可是直接mex maxflowmex.cpp時,出現如下錯誤:函數
maxflowmex.obj : error LNK2019: 沒法解析的外部符號 "public: __cdecl Graph<float,float,float>::Graph<float,float,float>(int,int,void (__cdecl*)(char *))" (??0?$Graph@MMM@@QEAA@HHP6AXPEAD@Z@Z),該符號在函數 mexFunction 中被引用命令行
問題的緣由是沒法須要編譯多個cpp文件所致。maxflowmex.cpp中包含頭肩爲#include "maxflow-v3.01/graph.h",因此從網上下載maxflow-v3.01放到相應目錄下,以下圖所示code
觀察maxflow-v3.01中有graph.cpp和maxflow.cpp,因此在命令行中輸入mex maxflow-v3.01/maxflow.cpp maxflow-v3.01/graph.cpp maxflowmex.cpp便可。搞定!io