我正在使用嵌入式MATLAB從.m腳本生成C代碼。但是,在這一代之後,我留下了大約15個文件(其中大部分是源代碼)。如果我想在C中編寫獨立的主文件,我如何鏈接到MATLAB生成的代碼?有沒有辦法做到這一點,而不寫我自己的Makefile?鏈接到MATLAB生成的代碼
所以我想出瞭如何用matlab生成代碼生成靜態庫(.a)......我可以構建動態加載庫(.so)嗎?
我正在使用嵌入式MATLAB從.m腳本生成C代碼。但是,在這一代之後,我留下了大約15個文件(其中大部分是源代碼)。如果我想在C中編寫獨立的主文件,我如何鏈接到MATLAB生成的代碼?有沒有辦法做到這一點,而不寫我自己的Makefile?鏈接到MATLAB生成的代碼
所以我想出瞭如何用matlab生成代碼生成靜態庫(.a)......我可以構建動態加載庫(.so)嗎?
我不知道這是否特別針對我的項目,但我發現我可以像通常包含其他任何東西一樣包括Matlab生成的文件。
我將生成的matlab源文件(.c和.h)直接複製到我的項目中,然後我必須將它們專門添加到我的項目中。 (我想知道這是否與我使用的IDE有更多關係)。
然後,在您創建的main.c中,只需添加#include「yourGeneratedFile.h」行即可。現在在main.c中,你應該可以使用Matlab創建的任何函數。
例如,在一個例子:
的main.c內,包含頭文件,並使用所需
#include "SPIUARTDemo30f.h"
//further down in the file
SPIUARTDemo30f_step(); //using the function I asked Matlab to generate
SPIUARTDemo30f.h和SPIUARTDemo30f.c正在生成的從MATLAB文件功能:
的.H內你會看到
extern void SPIUARTDemo30f_step(void);
和,如果y你看看.c你會發現:
void SPIUARTDemo30f_step(void)
{
/* lots of code */
}
啊,所以我在原來的問題上取得了一些進展。基本上,一切工作正常。然而,make文件matlab生成限制來創建靜態庫。我的新問題是:我如何構建動態加載的庫,即如何構建共享對象? – devin 2009-11-03 18:40:24
也許這將有助於:http://www.adp-gmbh.ch/cpp/gcc/create_lib.html – Amro 2009-11-05 00:18:15