8

In my pch file I have the following definitions:

#if (_MSC_VER < 1300)
   typedef signed char       int8_t;
   typedef signed short      int16_t;
   typedef signed int        int32_t;
   typedef unsigned char     uint8_t;
   typedef unsigned short    uint16_t;
   typedef unsigned int      uint32_t;
#else
   typedef signed __int8     int8_t;
   typedef signed __int16    int16_t;
   typedef signed __int32    int32_t;
   typedef unsigned __int8   uint8_t;
   typedef unsigned __int16  uint16_t;
   typedef unsigned __int32  uint32_t;
#endif
typedef signed __int64       int64_t;
typedef unsigned __int64     uint64_t;  

When I build my application I get an error at

typedef signed __int64       int64_t;
typedef unsigned __int64     uint64_t; 

which says that _int64 does not name a type. What might be the problem?

halfer
  • 19,824
  • 17
  • 99
  • 186
Nitish
  • 13,845
  • 28
  • 135
  • 263

2 Answers2

8

Add this include

#include <inttypes.h>

Then use uint64_t or int64_t.

see below

#include <inttypes.h>


#if (_MSC_VER < 1300)
   typedef signed char       int8_t;
   typedef signed short      int16_t;
   typedef signed int        int32_t;
   typedef unsigned char     uint8_t;
   typedef unsigned short    uint16_t;
   typedef unsigned int      uint32_t;
#else
   typedef signed __int8     int8_t;
   typedef signed __int16    int16_t;
   typedef signed __int32    int32_t;
   typedef unsigned __int8   uint8_t;
   typedef unsigned __int16  uint16_t;
   typedef unsigned __int32  uint32_t;
#endif
typedef signed __int64       int64_t;
typedef unsigned __int64     uint64_t;  
4

It looks like you you are trying to use MSVC specific __int64 type with GCC. That does not work, use long long instead.

wilx
  • 17,697
  • 6
  • 59
  • 114
  • Actually I am building [this](http://code.google.com/p/idoubs/wiki/Building_iDoubs_v2_x) code. – Nitish Aug 24 '11 at 11:23