2011-11-27 132 views
1

我正在用MinGW编译C代码。 C代码是一个tcl包/扩展。与mingw编译时缺少assert.h

(使用MinGW的compilor,下载:MinGW的-GET-研究所-20111118.exe)

编译代码(例如TCL的包)linux下正常工作。 我正在运行“./configure”并使用提供的“Makefile.in”。

问题是C代码在某些时候包含了“assert.h”。

其他头文件很好,例如,为“string.h”和“stdlib.h”。 这是因为TCL资源包含名为“./compat”的子文件夹。在这个文件中,头文件的位置是为了防止它们在其他地方找不到。

但是在“./compat”文件夹中缺少文件“assert.h”。所以我得到一个错误。

我在“c:\ MinGW \ include”中搜索了头文件,但没有找到“assert.h”。

要么我将自己的“assert.h”复制到“./compat”文件夹中。或者我安装一些MinGW软件包,在“c:\ MinGW \”子文件夹中放置一些“assert.h”。

===解决方案:====
C:\ MinGW的\ \包括ASSERT.H

我就在我的面前孔的时间! 我的不好!谢谢。

+0

compat目录包含一些(现在大多是过时的)平台的兼容性修补程序。断言支持从来没有在那里;不知道'assert()'被破坏的任何平台。 –

回答

5

<assert.h>是标准C的一部分,包含在基础dev软件包:

你下载开发包? 你下载过这个吗? http://sourceforge.net/projects/mingw/files/MinGW/Base/mingw-rt/mingwrt-3.20/

我不知道tcl包的特性,但是如果它包含它自己的assert.h。那么你应该在包含路径中包含随附的库。

您使用哪种IDE?

看来你只下载了部分mingw。下载与Codelite和Code :: Blocks等IDE捆绑在一起的完整开发包。

+0

我正确地下载了mingw,但看了看错误的地方。非常感谢您的提示! – mrsteve