2011-11-27 108 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