我有一段用C++ 11编写的代码,我想将其编译为GNU/Linux的MATLAB MEX文件的一部分.
问题是Linux上的MATLAB仅支持GCC 4.3(及更早版本),并且不支持编译我的C++ 11代码所需的GCC 4.7.
有可能解决这个问题吗?
是否可以通过使用GCC 4.7编译一些目标文件并使用GCC 4.3将它们链接到MEX文件来解决这个问题?
提前致谢!
我试图从MATLAB工具包' oscmex ' 执行一些示例代码.该工具包允许使用OSC协议通过MATLAB进行通信.我认为这个问题不具体; 它应该适用于以这种方式设置的任何工具包.
抛开原因,我在启动和运行工具包时遇到了一些麻烦.该工具包没有任何文档; 只有一组六个DLL文件(在一个目录中),以及一组四个MATLAB'.m'示例代码文件(在另一个目录中).我过去使用的每个工具包都是内置工具包或者具有直观(半自动)安装过程.
下载工具包后,我尝试的第一件事就是简单地运行一个'.M'示例代码.这失败了,因为代码的第一行包含函数osc(),它没有(当前)被MATLAB识别.
所以,我想我可能需要将'.M'文件移动到与DLL相同的文件夹中; 也许MATLAB会看到DLL中的函数.没有骰子.
所以,我意识到我必须以某种方式在启动时将MATLAB链接到DLL.我尝试将DLL添加到文件夹并在'pathdef.m'文件中添加一个条目.这也失败了.
我已经读过一些可以使用loadlibrary()函数加载DLL文件的地方.所以,我试着为DLL文件做这个.第一个文件失败:
>> loadlibrary('osc_free_address.dll')
Error using loadlibrary>lFullPath (line 587)
Could not find file osc_free_address.h.
Run Code Online (Sandbox Code Playgroud)
我开始耗尽选项......我怎样才能启动并运行这组DLL?