2010-09-08 32 views
0

我在Turbo C的打开交流文件,该C文件的开头是这样的:为什么mex.h中有一些错误?

#include <math.h> 
#include <stdio.h> 
#include "mex.h" 
#include "matrix.h" 

它使用了一些MATLAB结构和在C 做我检查了目录,并深信他们是对。但是当我试图编译它,这里有一些错误(我只是复制一些和粘贴,他们看起来类似):

错误C:\ MYFILE〜1 \ TC2.0 \ MEX.H 1:非法字符' #'(0x23)
错误C:\ MYFILE〜1 \ TC2.0 \ MEX.H 1:意外的条件结束条件...
错误C:\ MYFILE〜1 \ TC2.0 \ MATRIX.H 1:表达式语法

怎么回事?似乎是这些文件中的错误,但我只是将这些文件复制到正确的文件夹中......谢谢!

+1

的错误是在mex.h. 1号线这里有一个想法,在这里发布mex.h的前几行,也许我们不需要猜测它出了什么问题。 – JeremyP 2010-09-08 15:55:41

回答

1

MEX.H的第1行似乎有一个流浪'#'。

没有看到文件,很难说是什么问题。它可能是在'#'之前有空格,或者是注释 - 但是该行是另一个有效的#ifdef行。很久以前(但可能在创建Turbo C时),C预处理器指令需要第1列中的'#'。

+0

@ Jonathan Leffler,谢谢!你是否同意abelenky这可能是编译器本身的问题? – serina 2010-09-08 13:47:46

+0

它可能是'#ifndef'的一种情况 - 注意'#'和'ifndef'之间的空格 – MSalters 2010-09-08 13:48:23

+0

@MSalters,我检查了mex.h,#和ifndef之间没有空格...无处不在#ifndef – serina 2010-09-08 13:51:28

2

Turbo C?真的吗?它像20岁那样。
(这是一个经典,我喜欢它......我不坏唱衰它,它只是不再适用。)

mex.h肯定使用方面现在是无效在Turbo C的日子

要么你需要做一些移植工作来修复mex.hmatrix.h,或者你需要一个现代编译器(几个好的免费版)。

+1

+1 - 严重的是,没有人甚至试图与Turbo C兼容,我怀疑Matlab甚至能够使用它生成的二进制文件(考虑到它只能生成16位应用程序) – 2010-09-08 13:44:23

+0

好点比利!即使你经过Turbo C的预处理器和编译器,16位输出也可能无用。 – abelenky 2010-09-08 13:45:37

+0

@hahahaha,我实际上使用VS工作室,但为此,我发现TC可能更聪明。好的...我出去了〜 – serina 2010-09-08 13:45:48

2

检查文件的日期是1990年,而不是2010年!

检查文件是纯ASCII(开始时没有BOM)。
检查最后一行以换行符结束。

如果您打开并保存了一些编辑的文件,它可能已被更改为格式的Turbo C.不兼容

+0

谢谢,我明白了,为什么会有这么多的苦难 – serina 2010-09-09 18:38:38

相关问题