我试图在MATLAB中实现“基于GrabCut的对象分割技术”。为了最小化马尔可夫随机场能量函数,我使用了标准的最大流/最小切割算法,如下所示:http://vision.csd.uwo.ca/code/
问题:当我试图创建一个mex文件来调用MATLAB中的图形创建和最小化函数时,我会得到以下错误:
未定义符号:“图::图( int,int,void ()(char))",引用于: GraphTest.o中的_mexFunction
ld:符号未找到collect2: ld返回1退出状态
mex:“GraphTest.mexmaci64”链接失败。
我的代码非常简单,只是复制了自述文件中提到的代码的一部分,如下所示:
#include "mex.h"
#include <stdio.h>
#include <math.h>
#include "graph.h"
void mexFunction(int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[])
{
typedef Graph<int, int, int> GraphType;
GraphType *g = new GraphType(/*estimated # of nodes*/ 2, /*estimated # of edges*/1);
}如果以前使用过这个包或者经历过类似错误的人能够提供一些关于这个问题的见解,我会非常感激。
提前感谢!
发布于 2011-05-02 13:00:45
我猜你是用Matlab编译的吧?
尝试:
mex GraphTest.cpp graph.cpp
我猜想您的mex网关文件是GraphTest.cpp。任何依赖项都可以标记到末尾。对于简单的项目来说,这是相当有效的。当它变得更大时,您将希望切换到实际的构建系统w/依赖项。我更喜欢CMake。
https://stackoverflow.com/questions/5853381
复制相似问题