我試圖編譯一些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