2012-05-24 61 views
3

我正在编写一些MATLAB代码,并且我想使用一些优化的C例程。我有C源代码,它工作得很好。我创建了一个MEX文件,并且能够编译它,只要它与优化的C例程位于同一个文件夹中即可。但是,我希望能够将这些代码分发给各种平台上的其他人。由于MEX文件是二进制文件,每个人都必须(可能)在自己的机器上重新编译。这很好,但我想尽可能地让这个过程变得无痛苦。使用另一个文件夹中的目标文件编译MEX文件

目前,如果所有的文件都在同一目录中,然后调用该目录类似

mex mexfile.c other1.o other2.o other3.o 

工作得很好,如你所愿。然而,为了组织的目的,我想让C代码在它自己的(子)目录中,比如说code。不幸的是,如果我构造这样的东西,那么mex命令会出错(这些错误根据我尝试过的不同情况而有所不同)。我试过的东西

mex mexfile.c code/other1.o code/other2.o code/other3.o 

-Ipathname并在mex命令-Lfolder选项,但是这些都没有为我工作。我认为必须有一种简单的方法来做我想做的事情,但我无法找到适当的文档或自己弄清楚。任何帮助,将不胜感激。

+0

请写出mex命令的错误信息。 – Oli

+0

我正在根据请求重新生成错误;我偶然发现了这个解决方案。这是我的第一篇文章Stack Overflow,我不确定我应该如何为自己的问题提供解决方案。 – zroth

+1

将其作为答案发布在下面。 –

回答

0

我用沿线的

emlc -I './somedir/' -o sourcefilemex -T mex sourcefile 

东西通过改变-t参数可以生成MEX代码或嵌入C.这是得心应手。

mex -Icode mexfile.c code/other1.o code/other2.o code/other3.o 

予跨越该溶液偶然而再生的错误消息:

1

根据需要对我[OP的溶液转化以下回答]

在上面给出的设置,使用下面的命令的作品。

我猜这只是mex命令的-Ipathname选项的恰当语法,但我找不到支持该结论的文档。如果其他人可以提供实际文档的链接,那肯定会比刚好适合我的潜在解决方案更好。

相关问题