我在使用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文件的任何想法?
答案 0 :(得分:1)
所以我想出来了。我只是错过了mexopts.sh中有许多不同的机器相关部分的事实。虽然,我必须承认,因为mex不支持交叉编译,据我所知,然后Mathworks真的应该在安装过程中减少mexopts.sh以仅反映安装它的计算机的设置。
我只需向下滚动到标有maci64)
的部分,然后在那里编辑设置。我在-std=gnu++11
变量中添加了相应的标记(CXXFLAGS
),它可以正常工作!