类型为"double"的输入参数的未定义函数
Undefined function for input arguments of type 'double'
我 http://cazencott.info/dotclear/public/code/scones.zip 从这里下载了MATLAB代码。当我运行"demo"时,它说"未定义的函数'maxflowmex'用于'double'类型的输入参数"。实际上,文件夹中只有一个c ++文件"maxflowmex.cpp"(已添加到路径中)。它是否需要"maxflowmex.m"而不是"maxflowmex.cpp"才能正常运行?还是其他一些方法调用"maxflowmex.cpp"?或者我需要编译一些东西?
我只是看了一下zip文件。 maxflow
目录中有一些 MEX 包装器,MATLAB 调用这些函数,这些函数是用 C 编写的,但在 MATLAB 中可以运行。 在运行这些 MEX 包装器之前,需要使用与您的操作系统兼容的编译器进行编译。
但是,有预编译的二进制文件,但我只看到Linux和Mac OS的64位二进制文件,而没有看到Windows二进制文件。 由于您无法运行它们,因此您很可能运行的是 32 位操作系统或 Windows。 我怀疑您运行的是Windows或32位Linux,因为Mac OS默认为64位。
您需要运行一个make.m
脚本,以便为您的计算机编译maxflow
库。 编译库后,运行demo.m
应该会成功。
在执行此操作之前,您需要确保通过在命令窗口中执行mex -setup
来设置mex
,然后选择正确的编译器。 执行此操作后,运行maxflow
目录中的make.m
。
如果你没有编译器,如果你使用的是Linux,那么对gcc
包进行apt-get
应该足够好了,所以:
sudo apt-get update
sudo apt-get install gcc-4.6-base g++-4.6 cpp-4.6 libgomp1 libquadmath0 libc6-dev
如果您使用的是 Windows,那么您需要支持的编译器将取决于您使用的 MATLAB 版本。 我假设您使用的是最新版本,因此下载最新版本的Visual Studio Express以及SDK就足够了。
- http://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx
- http://www.microsoft.com/en-us/download/details.aspx?id=40758
- 从python调用openMP共享库时,未定义opnMP函数
- 具有外部"c"和程序集的未定义函数
- 已定义函数时出现 G++ "未定义的引用"错误
- 对显式实例化的模板函数的未定义引用
- 编译问题:在函数"_start"中:未定义对"主"的引用 collect2:错误:ld 返回 1 个退出状态
- 为什么我会收到警告,指出函数已使用但未定义,以及已定义但未使用?
- 2个模板化类的非模板友元函数未定义引用错误
- 使用内联函数 c++ 的未定义引用
- MacOS 上的 Xcode 11 项目不在一个函数中使用 sin 和 cos:未定义的符号"___sincosf_stret"
- 仅在 MacOS 上析构函数的未定义符号
- 如果用户尝试从 JS 调用对象的未定义函数C++则回调C++代码
- C++编译并链接到指向未定义函数的指针
- C++:定义函数时出现未定义函数错误
- 奇怪的未定义函数引用,函数调用C++不存在
- 类型为"double"的输入参数的未定义函数
- Android NDK:创建一个未定义函数的库
- c++ Builder调用未定义函数hypot/ceil/floor/fab
- 通过 GDB 设置断点时未定义函数"d::~d"
- 如何像传递未定义函数一样传递未定义方法
- 确定未定义函数的参数类型