Matlab mex 选项未更新
Posted
技术标签:
【中文标题】Matlab mex 选项未更新【英文标题】:Matlab mex options not being updated 【发布时间】:2014-08-13 18:33:19 【问题描述】:我在 Mac OS 10.9.2 上的 matlab r2011a 上使用 mex 编译文件时遇到了许多问题。我知道我需要有编译器标志-std=gnu++11
才能使事情正常进行。我已经更新了 mexopts.sh 文件 (~/.matlab/r2011a/mexopts.sh),以便 CXXFLAGS 添加了所需的标志。但是它似乎不起作用。
如果我查看编译器配置:
cc = mex.getcompilerconfigurations('c++')
返回的cc.details.CompilerFlags
与 mexopts.sh 中的值没有任何关系。这可能就是为什么事情无法正常工作的原因。
关于如何解决此问题以使编译器配置真正反映 mexopts.sh 文件的任何想法?
【问题讨论】:
您是否尝试运行mex -setup
并在进行修改后再次选择编译器?
@Praetorian 我认为这只会在我的 mexopts.sh 上复制一个文件,但我会尝试。
它可能,所以你可能想要做一个备份 :) 我不知道这是否真的能解决问题。
它没有修复它,但它破坏了它,我能够真正找到问题。我没有编辑正确的部分!
很高兴有帮助 :D 你应该发布一个答案。
【参考方案1】:
所以我想通了。我只是错过了这样一个事实,即 mexopts.sh 中有许多不同的机器相关部分。虽然,我必须承认,由于 mex 不支持交叉编译,据我所知,Mathworks 确实应该在安装过程中减少 mexopts.sh 以仅反映安装它的计算机的设置。
我只需要向下滚动到标有maci64)
的部分,然后在那里编辑设置。我在CXXFLAGS
变量中添加了适当的标志(-std=gnu++11
),它可以工作!
【讨论】:
以上是关于Matlab mex 选项未更新的主要内容,如果未能解决你的问题,请参考以下文章
matlab 解决 错误使用 mex 未找到支持的编译器或 SDK
Matlab:无法使用 openmp 编译 mex(未定义的参考)