具有多个源文件的Matlab C ++ S-Function

时间:2015-02-04 15:38:41

标签: c++ matlab simulink mex s-function

我有一个带有c ++ s函数的simulink模型。 该s函数需要访问许多(> 50)类。每个类由标题( .h)和源( .cpp)文件组成。 我还将我的代码分成了多个目录:

root
-sfun.cpp
-folder1
--file1.h
--file1.cpp
--file2.h
--file2.cpp
-folder2
--file3.h
--file3.cpp
...

为了编译s函数我正在使用mex函数:

mex -Ifolder1 -Ifolder2 -outdir bin sfun.cpp folder1/file1.cpp folder1/file2.cpp folder1/file3.cpp

http://de.mathworks.com/help/matlab/ref/mex.html

但随着越来越多的文件,这会变得非常冗长和丑陋,因为我需要分别指定每个头文件夹和earch源文件。 有没有更好的方法来创建需要访问大量源文件的mex文件?

我有以下想法,但我不确定什么是正确和最简单的方法:

  1. 将所有头文件和源文件(fileX.h / fileX.cpp)添加到visual studio项目中,并将它们编译为* .lib文件。然后使用mex工具仅编译sfun.cpp并提供对* .lib文件的访问

  2. 将所有标头和源文件移动到一个目录中。这将缩短命令行,如下所示:

    mex -outdir bin sfun.cpp file1.cpp file2.cpp file3.cpp
    
  3. 使所有内联内联,以便不需要源文件。 (非常难看的解决方案)

  4. mex编译器是否有某种makefile?

  5. 不仅包括头文件,还包括#include指令的源文件。

  6. 目前我不相信任何这些想法,我会感激任何帮助。

    由于

    EDIT1: 一个注释:此项目应在稍后阶段移植到dspace pc。在这种情况下,我需要考虑一些特别的事情吗?

0 个答案:

没有答案