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放到相應目錄下,如下圖所示

觀察maxflow-v3.01中有graph.cpp和maxflow.cpp,所以在命令行中輸入mex maxflow-v3.01/maxflow.cpp maxflow-v3.01/graph.cpp maxflowmex.cpp即可。搞定!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM