0

感谢您对我的问题的任何帮助...

我正在尝试运行位于http://redwood.berkeley.edu/bruno/sparsenet/的 sparsenet.tar.gz 文件中的这个程序

我尝试遵循一个自述文件,但我似乎无法编译我的 cgf.c ...

我假设我做的第一步是正确的(我很确定我能够编译 libnrfopt.a)。

但是当我在 sparsenet 目录中键入“make”时,它会显示:new-host-2:sparsenet user123$ make mex -I./nrf -L./nrf -lnrfopt cgf.c make: mex: No such file or directory制作:* [cgf.mexmaci64] 错误 1

我认为这意味着我的终端无法识别 Mex,有人能指出它是如何工作的吗?(在你告诉我我没有做足够的搜索之前,我已经......我似乎找不到任何相关的东西......我在 Xcode 中运行了我的命令行选项,GCC 工作,Mex -setup 工作)

顺便说一句,我在终端中执行此操作,而不是在 MATLAB 中。通过直接使用 Mex 在 matlab 中执行此操作也不适合我。

此外,我已将 mex 扩展更改为多种选择,包括 mexmac、mexmaci64 等。

提前致谢!!

4

3 回答 3

1

我能够让它工作(R2012b,OS X 10.8.4)。虽然代码很旧,但查看某些文件的日期,所以我对您遇到问题并不感到惊讶。按照自述文件,首先我使用终端make libnrfopt.a在文件夹中执行。nrf然后,在 Matlab 命令窗口中,我曾经cd移动到该文件夹​​并执行(与从终端sparsenet运行时产生错误的命令相同):make

mex -I./nrf -L./nrf -lnrfopt cgf.c

从这里我能够按照自述文件运行示例。

顺便说一句,如果您以前从未mex在 Matlab 中运行过,您可能需要先运行mex -setup。正如您提到的 Xcode,我假设您拥有所需的编译器。

于 2013-06-14T22:53:08.797 回答
0

好的,我想通了,在makefile中,我只需要将Mex = mex更改为我的Matlab文件夹中的mex.exec目录并将mext更改为maci64

于 2013-06-15T00:35:34.647 回答
0

是的,我确实放了:

MEX = /Applications/MATLAB_R2012a.app/bin/mex
MEXT = mexmaci64

如果您的 mex 设置不正确,请检查 mexopts.sh 文件并更改为gcc-4.2CCg++-4.2选项。我有这些编译器。其他编译器也应该可以工作。

如果问题仍然存在,请查看: http: //www.mathworks.nl/support/solutions/en/data/1-FR6LXJ/

于 2013-10-30T22:37:31.460 回答