한승희 님이 쓰신 글 :
: 현재 NXP semiconductor 사의 ted- kit2 를 이용해 개발하고 있습니다.
: code::blocks에서 api의 기본적인 기능이 구동함을 확인하고 빌더에서 작업을 하려고 헤더파일과 라이브러리를 추가 했는데
: F1003 Error directive 에러가 발생합니다.
: 빌더의 버전은 Borland c++ 6.0 builder 입니다.
: #ifndef PHCAICLIB_TYPES_H
: #define PHCAICLIB_TYPES_H 1
:
: /*! @brief 1 shifted left 5 times. */
: #define SHL_1_BY_5 ((uint8_t)32u)
: /*! @brief 1 shifted left 6 times. */
: #define SHL_1_BY_6 ((uint8_t)64u)
:
: #ifdef __GNUC__
: #include <stdint.h>
: typedef float float32_t, float24_t;
: typedef double float64_t;
: #elif defined _MSC_VER
: /* If the Boost library is available, we take these definitions and import them into the global
: * namespace. This resolves conflicts between multiply defined fixed-width data types that the
: * compiler is not able to deal with. */
: #if defined(BOOST_VERSION) || defined(CAI_CLIB_USE_BOOST)
: #include <boost/cstdint.hpp>
:
: using boost::uint8_t;
: using boost::uint16_t;
: using boost::uint32_t;
: using boost::uint64_t;
:
: using boost::int8_t;
: using boost::int16_t;
: using boost::int32_t;
: using boost::int64_t;
:
: /* We need to explicitly define the fixed-width types under Windows. If we do not have the Boost
: * library available, which is the case if we compile a C library, we rely on the compiler type
: * definitions for microsoft visual studio older then 2010. */
: #elif (_MSC_VER < 1600)
: typedef __int8 int8_t;
: typedef __int16 int16_t;
: typedef __int32 int32_t;
: typedef __int64 int64_t;
:
: typedef unsigned __int8 uint8_t;
: typedef unsigned __int16 uint16_t;
: typedef unsigned __int32 uint32_t;
: typedef unsigned __int64 uint64_t;
: #else
: #include <stdint.h>
: #endif
:
: typedef float float32_t, float24_t;
: typedef double float64_t;
:
: /* ...#elif defined _MSC_VER */
: #elif defined __chess__
: /* XXX AL string_t mandatory for some reason - investigate, maybe char_t sufficient. Potentially
: * outside the scope of this file, which contains numeric types only. */
: /*! @brief This is the integral signed byte type. */
: typedef signed char int8_t;
: /*! @brief This is the integral unsigned byte type. */
: typedef unsigned char uint8_t;
: /*! @brief This is the integral signed word type. */
: typedef signed short int16_t;
: /*! @brief This is the integral unsigned word type. */
: typedef unsigned short uint16_t;
: /*! @brief This is the integral signed long type. */
: typedef signed long int32_t;
: /*! @brief This is the integral unsigned long type. */
: typedef unsigned long uint32_t;
: /*! @brief This is the integral short float type. */
: typedef float float32_t;
: #if defined(_lint)
: /*! @brief This is the IEEE short float type. */
: typedef float float24_t;
: #elif __tct_mrk3e__
: // Target chess MRKIIIe compilers know NXP's short floating point type.
: typedef float24 float24_t;
: #elif __tct_mrk3__
: // Target checss MRKIII compilers know NXP's short floating point type.
: typedef float24 float24_t;
: #else
: /*! @brief This is again the IEEE short float type. */
: typedef float float24_t;
: #endif
: /*! @brief This is the integral double float type. */
: typedef double float64_t;
: #else
: #error Unexpected build environment. <<--------에러부분입니다.
: #endif
:
: /** @brief The type to be used for bitfields.
: * MISRA 2004, rule 6.4 allows only int (signed or unsiged) as base type for bit fields.
: */
: typedef unsigned int bitfield_t;
:
: /** @brief The type to be used for c-Strings. */
: typedef char char_t;
:
: /** @brief The general purpose return type as defined by MoReUse 3.2, section 11.3. */
: typedef uint32_t phReturnCode_t;
:
: #endif /* PHCAICLIB_TYPES_H */
:
:
: 비주얼 스튜디오가 아니라서 발생하는 에러 같은데 어떻게 수정해야 할지 도움 부탁드립니다...ㅠㅠ
답변:
프로젝트 c++ 옵션에서 conditional Defines로 _MSC_VER 정의해 주고 조정해 주면 되겠네요
|