我有一个包含函数库的 Visual Studio 2010 解决方案,并且我希望能够使用 MATLAB 作为该库的几个可能的前端之一。因此,我希望 Visual Studio 在构建解决方案时自动生成 mex 文件,而不必将所有构建选项和路径导出到 mexopts.bat 并打开 MATLAB 从那里构建文件。我已经看到了一些实现类似目标的建议,例如在这些帖子中:
Matlab 7.1+ 和 Visual Studio 2005
使用 Visual Studio 编译 MEX 文件
如何使用 CMake 和 Visual Studio 2010(64 位)构建 MATLAB R2011a(64 位)mex 文件?
然而,它们要么看起来有点过时(引用不再找到的文件),要么使用外部工具(例如 CMake)。有谁知道如何在 Visual Studio(2010 及更高版本)中设置一个新项目(在现有解决方案中),该项目将为当代 MATLAB 版本构建 mex 文件?
在一些指导下进行实验后这一页问题中提到,似乎从一个空的 C++ 项目开始,项目属性页中的以下设置对于从 Visual Studio 2010 构建工作 .mexw64 是必要且足够的:
Configuration properties -> General:
Set Target Extension to .mexw64
Set Configuration Type to Dynamic Library (.dll)
Configureation poperties -> VC++ Directories:
Add $(MATLAB_ROOT)\extern\include; to Include Directories
Configuration properties -> Linker -> General:
Add $(MATLAB_ROOT)\extern\lib\win64\microsoft; to Additional Library Directories
Configuration properties -> Linker -> Input:
Add libmx.lib;libmex.lib;libmat.lib; to Additional Dependencies
Configuration properties -> Linker -> Command Line:
Add /export:mexFunction to Additional Options
$(MATLAB_ROOT)
是 Matlab 根文件夹的路径,例如。 C:\Program Files\MATLAB\R2013a。
到目前为止,仅从从头开始创建并为 Matlab 2013a 64 位构建的解决方案进行了尝试。我假设要构建 32 位版本,只需将两次出现的 64 更改为 32。当我确认这适用于现有解决方案时,我将更新这篇文章。
EDIT:正如预期的那样,这适用于添加到现有解决方案中的项目。请记住将新项目设置为依赖于创建库的项目。
Edit 2:下列的这个问题我可以确认上述步骤也适用于 Visual Studio 2012、2013 和 2017。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)