matlab採用mex編譯多個cpp文件

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

相關文章
相關標籤/搜索