对我的问题有任何帮助表示赞赏......
我正在尝试运行位于http://redwood.berkeley.edu/bruno/sparsenet/的sparsenet.tar.gz文件中的这个程序
我试着遵循README,但我似乎无法编译我的cgf.c ......
第一步我假设我做得正确(我很确定我能够编译libnrfopt.a)。
但是当我在sparsenet目录中输入“make”时,它说: new-host-2:sparsenet user123 $ make mex -I./nrf -L./nrf -lnrfopt cgf.c make:mex:没有这样的文件或目录 make: * [cgf.mexmaci64]错误1
我认为这意味着我的终端无法识别Mex,有人能指出我的工作方式吗? (在你告诉我我没有做足够的搜索之前,我有......我似乎无法找到任何相关的内容......我在Xcode中运行我的命令行选项,GCC工作,Mex -setup工作)
顺便说一句,我是在终端里做的,而不是在MATLAB里面。直接使用Mex在matlab中完成它也不适用于我。
此外,我已将mex扩展名更改为各种选项,包括mexmac,mexmaci64等。
提前致谢!!
答案 0 :(得分:1)
我能够让它工作(R2012b,OS X 10.8.4)。代码是旧的,查看一些文件的日期,所以我不会感到惊讶你有问题。在自述文件之后,我首先使用终端在make libnrfopt.a
文件夹中执行了nrf
。然后,在Matlab命令窗口中,我使用cd
移动到sparsenet
文件夹并执行(当您从终端运行make
时产生错误的相同命令):
mex -I./nrf -L./nrf -lnrfopt cgf.c
从这里我可以按照自述文件运行示例。
顺便说一句,如果您以前从未在Matlab中运行mex
,则可能需要先运行mex -setup
。正如你提到的Xcode,我假设你有你需要的编译器。
答案 1 :(得分:0)
好的我想通了,在makefile中,我只需要将Mex = mex更改为我的Matlab文件夹中的mex.exec目录并将mext更改为maci64
答案 2 :(得分:0)
是的,我确实放了:
MEX = /Applications/MATLAB_R2012a.app/bin/mex
MEXT = mexmaci64
如果您的mex设置不正常,请检查mexopts.sh文件并进行更改
CC选项中的gcc-4.2
和g++-4.2
。我有这些编译器。其他编译器
也应该工作。
如果有更多问题仍然存在,请查看以下内容:http://www.mathworks.nl/support/solutions/en/data/1-FR6LXJ/