2013-03-26 4 views
1

mongoose 예제에서 제공되는 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

저는 Microsoft Visual C++에 유효한 C 컴파일러를 고려하지 않았습니다. 그것은 주로 C++와의 하위 호환성을 가진 C89를 지원합니다. 그러나 C89 이후 두 가지 표준이 채택되었습니다 : C99와 C11. C 컴파일러가 1999 년부터 C 코드를 컴파일 할 수 없다는 제안은 부당합니다. 유효한 C99 컴파일러는이 코드를 올바르게 컴파일합니다.

요약하면 C 컴파일러를 사용하여 C 코드를 컴파일하고 C++ 컴파일러를 사용하여 C++ 코드를 컴파일합니다. 일부 C 코드를 C++ 프로젝트에 연결해야하는 경우 C 컴파일러로 C 코드를 컴파일하고 C++ 링커를 사용하여 C++ 프로젝트에 링크하십시오.

+0

mvC++를 사용하지 않았지만 gcc 대신 g ++를 사용하고 있음을 알게되었습니다. 감사! – georges