2013-03-26 172 views
1

我試圖編譯是根據與貓鼬的例子所提供的的hello.c。我不斷收到錯誤:貓鼬HELLO.C編譯錯誤

mongoose.c:4752:27: error: '_strtoi64' was not declared in this scope 

我看着mongoose.c和_strtoi64是在上線109的定義:

#if defined(_MSC_VER) && _MSC_VER < 1300 
#define STRX(x) #x  
#define STR(x) STRX(x)  
#define __func__ __FILE__ ":" STR(__LINE__) 
#define strtoull(x, y, z) strtoul(x, y, z)  
#define strtoll(x, y, z) strtol(x, y, z)  
#else  
#define __func__ __FUNCTION__  
#define strtoull(x, y, z) _strtoui64(x, y, z)  
#define strtoll(x, y, z) _strtoi64(x, y, z)  
#endif // _MSC_VER 

我試圖定義出方的定義,如果,但我得到了同樣的錯誤。
我看到: link 但它看起來像我已經在那裏這個「修復」的代碼版本。

我看了一些其他的前奏貓鼬的問題,但我並沒有遇到任何的問題。

在此先感謝

回答

2

我不會考慮微軟的Visual C++有效的C編譯器。它支持C89,它主要與C++具有子集兼容性。但是,自C89以來,又採用了兩個標準:C99和C11。建議C編譯器無法從1999年編譯C代碼是不合理的。有效的C99編譯器會正確編譯此代碼。

總之,使用C編譯器來編譯C代碼和C++編譯器編譯的C++代碼。如果您需要將某些C代碼鏈接到C++項目,請使用C編譯器編譯您的C代碼,並使用C++鏈接器將其鏈接到C++項目。

+0

我沒有使用MVC++,但你讓我意識到,我是用G ++而不是GCC。謝謝! – georges 2013-03-26 14:46:05