我在Windows 7中使用MATLAB R2008b。 编译器是Lcc-win32 C 2.4.1。 我试图从一个可以检索其路径和文件名的m文件创建一个exe文件。一位同事给了我一个C文件(mlgetmodulefilename.c)并建议我使用 mcc -m XYZ.m mlgetmodulefilename.c 生成XYZ.exe
首先,我遇到了一些关于matlab.h的错误。所以我复制,粘贴并将mex.h重命名为matlab.h。 然后,我面临以下错误和警告:
警告:名称不存在或不是目录:C:\ Program FILES \ MATLAB \ R2008b \工具箱\编译\补丁。
C:\用户\用户\应用程序数据\本地\ TEMP \ mbuild〜1个\ mlgetmodulefilename.obj .text:未定义引用'_mxCreateString'
有人可以帮我这个吗?谢谢。
mlgetmodulefilename.c
#include "matlab.h"
#include <stdio.h>
#include <windows.h>
#include "megetmodulefilename_external.h"
/*
INPUT
None
OUTPUT
None
RETURN
The full filename of the calling function
SYNOPSIS
*/
#define BUFSIZE 255
mxArray * Mmegetmodulefilename(int nargout_)
{
DWORD buflen;
TCHAR lpFilename[BUFSIZE]=TEXT("");
buflen = GetModuleFileName(NULL, lpFilename, BUFSIZE);
if (buflen == 0) {
return (mxCreateString("") );
}
else {
return (mxCreateString(lpFilename) );
}
}
答案 0 :(得分:0)