帮助:VS2005编译*.m文件
Help: VS2005 Compile *.m file
所有
我有实现A((函数的test.m(matlab源代码(文件;和main.cpp文件(将调用A(((。
正如你所知,我们可能喜欢以下步骤:
-
使用matlab编译test.m(mcc-(,将生成:test.dll、test.ctf、test.h.
-
将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--->BuildEvents->pre-BuildEvent-->命令行:mccC-w-lib:test-test.m中
它会生成中间文件test.ctf(只有test.ctf,没有test.dll(。但我不知道如何将test.ctf编译成main.cpp?
有人能帮我吗?
谢谢。
你可以用另一种方法,将你的main.cpp添加到matlab构建过程中:我不知道确切的语法,但你可以将你的main.cpp添加至mcc/mbuild,它会为你将其添加到dll中。在gui模式下使用deploytool时,只需将c/c++文件拖动到资源区域,它们就会被编译到dll中。因此,您将有一个dll,只包含m代码和您自己的c++代码。
另一种选择,使用上面的策略:首先尝试上面的方法,并查看deploytool的输出:它将向您显示所使用的命令。首先它调用mcc,然后调用mbuild,后者依次调用cl(MS编译器(。使用用于将mcc作为预构建事件调用的确切命令,然后以与mbuild相同的方式将输出文件添加到cl中(您也可以在输出中看到它是如何做到这一点的(。通过这种方式,您可以使用VS来构建单个dll,只需模仿matlab构建过程即可。
不过,我不确定这对分开分配两者有什么好处。另外,别忘了你必须将整个MCR与它一起分发,否则你的客户端将无法使用dll运行任何代码。
- 使用 Makefile 中的头文件编译 Pybind (不使用 cmake)
- 如何使用命令提示符、记事本和 MinGW 使用主文件、头文件和实现文件编译C++程序?
- 无论如何可以将webm / mp4文件编译/记忆为.exe程序吗?(C++)
- 从生成文件编译错误:"Unable to open output file" ..."No such file or directory"
- 如何使用 GLFW 预编译的二进制文件编译 Visual Studio 2019 发布版本
- Arduino IDE中自定义库类的.h文件编译错误的原因是什么
- makefile和错误将与大型项目分开的文件编译
- 如何使用生成文件编译具有多个目录的 c++ 项目
- 我可以将Visual Studio 2015头文件编译成dll并在VS2013中使用它吗?
- 使用Bazel将C 文件编译为python.h
- 使用 .a 文件编译简单的C++文件
- OpenCV 3.2 文件编译
- 如何从多个 cpp 文件编译 WebAssembly
- 从多个文件编译可以"undefined reference"
- 使用静态依赖性为共享二进制文件编译语法需要更加清晰
- 将Gsoap Src文件编译到我的项目中
- 如何用多个文件编译make下的dlib
- 字段的类型不完整,从多个文件编译
- 强制将特定文件编译为Objective-C/文件类型,但将整个项目编译为Objective C++
- OpenGLES 标头(包括 Availability.h)可防止 CPP 文件编译