最近在看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