2012-05-24 101 views
3

我正在編寫一些MATLAB代碼,並且我想使用一些優化的C例程。我有C源代碼,它工作得很好。我創建了一個MEX文件,並且能夠編譯它,只要它與優化的C例程位於同一個文件夾中即可。但是,我希望能夠將這些代碼分發給各種平臺上的其他人。由於MEX文件是二進制文件,每個人都必須(可能)在自己的機器上重新編譯。這很好,但我想盡可能地讓這個過程變得無痛苦。使用另一個文件夾中的目標文件編譯MEX文件

目前,如果所有的文件都在同一目錄中,然後調用該目錄類似

mex mexfile.c other1.o other2.o other3.o 

工作得很好,如你所願。然而,爲了組織的目的,我想讓C代碼在它自己的(子)目錄中,比如說code。不幸的是,如果我構造這樣的東西,那麼mex命令會出錯(這些錯誤根據我嘗試過的不同情況而有所不同)。我試過的東西

mex mexfile.c code/other1.o code/other2.o code/other3.o 

-Ipathname並在mex命令-Lfolder選項,但是這些都沒有爲我工作。我認爲必須有一種簡單的方法來做我想做的事情,但我無法找到適當的文檔或自己弄清楚。任何幫助,將不勝感激。

+0

請寫出mex命令的錯誤信息。 – Oli

+0

我正在根據請求重新生成錯誤;我偶然發現了這個解決方案。這是我的第一篇文章Stack Overflow,我不確定我應該如何爲自己的問題提供解決方案。 – zroth

+1

將其作爲答案發布在下面。 –

回答

0

我用沿線的

emlc -I './somedir/' -o sourcefilemex -T mex sourcefile 

東西通過改變-t參數可以生成MEX代碼或嵌入C.這是得心應手。

mex -Icode mexfile.c code/other1.o code/other2.o code/other3.o 

予跨越該溶液偶然而再生的錯誤消息:

1

根據需要對我[OP的溶液轉化以下回答]

在上面給出的設置,使用下面的命令的作品。

我猜這只是mex命令的-Ipathname選項的恰當語法,但我找不到支持該結論的文檔。如果其他人可以提供實際文檔的鏈接,那肯定會比剛好適合我的潛在解決方案更好。

相關問題