首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >帮助: VS2005编译*.m文件

帮助: VS2005编译*.m文件
EN

Stack Overflow用户
提问于 2011-09-01 04:58:25
回答 1查看 364关注 0票数 5

我有test.m( matlab源代码)文件,它实现A()函数;main.cpp文件(将调用A() )。

如你所知,我们可以采取以下步骤:

  1. 使用matlab编译test.m (mcc -),生成: test.dll、test.ctf、test.h。
  2. 将test.dll和test.ctf、test.h文件复制到VS2005项目中。在main.cpp中,调用test.dll中的A()。

但是,当我发布程序时,我也会将test.dll打包在一起。

另外,我可以使用VS2005编译test.m和main.cpp,这只会生成main.dll、main.ctf、main.h .(我只会发布main.dll、main.ctf、main.h )。

这意味着,我将test.m编译成main.cpp。

我尝试过这种方法,在VS2005 -> Build >预构建事件->命令行中: mcc -w lib:testtest.m

它将生成文件中的test.ctf (只有test.ctf,没有test.dll)--.But--我不知道如何将test.ctf编译成main.cpp?

有人能帮我吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2011-09-01 06:59:56

相反,您可以将main.cpp添加到matlab构建过程中:我不知道确切的语法,但您可以将main.cpp添加到mcc/mbuild中,它将为您添加到dll中。在gui模式下使用部署工具时,只需将c/c++文件拖到资源区域,然后将它们编译到dll中。因此,您将只有一个dll,其中包含m代码和您自己的c++代码。

另一个选项,使用上面的策略:首先尝试上面的操作,然后查看部署工具的输出:它将显示所使用的命令。它首先调用mcc,然后调用mbuild,然后调用cl ( MS编译器)。使用用于调用mcc的确切命令作为预构建事件,然后以mbuild的方式将输出文件添加到cl中(您还可以在输出中看到它是如何实现的)。这样,您就可以使用VS来构建单个dll,只需模仿matlab构建过程所做的事情。

尽管如此,我还是不知道这对分开分配这两件事有什么好处。此外,不要忘记,您必须分发整个MCR与它,否则您的客户端将无法运行任何代码使用dll。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7266277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档