我试图编译一些C++文件具有相同的名称(的fileA),但位于不同的文件夹(文件夹1和文件夹2),让说:Matlab的MEX C++两个文件在不同的文件夹同名
folder1/fileA.cpp
folder1/fileB.cpp
和
folder2/fileA.cpp
folder2/fileC.cpp
这些文件包含不同的类。
但mex
在同一文件夹中为folder1/fileA.cpp和folder2/fileA.cpp创建对象,所以当它试图生成最终的W32文件时,某些类缺失。
是否有任何告诉mex不要“压扁”文件夹结构,然后用另一个fileA.obj覆盖一个fileA.obj的方法?
所有提出的解决方案最终获得相同的基本思想是:准备我自己的编译过程(即Makefile文件或类似)。 我的问题与此解决方案是,他们是不一样的Linux,Windows,32或64位,...并不容易维护。这就是为什么我宁愿有一个基于mex
一个解决方案,但似乎它是不支持这样的东西...
我实际上编译所有的文件,一次调用mex为了最终生成mex。据我了解,您的解决方案会为一个单一文件生成输出,但不是所有文件都在一起。正确? – OnaBai 2012-07-05 17:59:02
是正确的,但是每个mex命令只有一个输出,不是吗? – Oli 2012-07-05 23:44:23
是的,但一个'mex'文件可能包含多个'obj'文件。如果'mex'脚本将所有'obj'文件保存在同一个文件夹中(后者将它们连接到一个单独的'mexw32'中),则其中一个被另一个覆盖,因此第一个文件的内容会丢失。 – OnaBai 2012-07-06 00:48:46