TEDAVL
TEDAVL

Reputation: 1

cstdint string c++>C11 int /usr/include/c++/8/cstdint:53:11: error: ‘::int_fast8_t’ has not been declared

I have a program that was written in C ++ 1996, and I would like to compile this to C ++ 17. I get an error message when add #include and I am referred to cstdint. This lacks the declaration of:

/ usr / include / c ++ / 8 / cstdint: 51: 11: error: ":: int64_t" has not been declared
   using :: int64_t;
           ^ ~~~~~~
/ usr / include / c ++ / 8 / cstdint: 53: 11: error: ":: int_fast8_t" has not been declared
   using :: int_fast8_t;
           ^ ~~~~~~~~~~
In file included from /usr/include/c++/8/bits/char_traits.h:503,
                 from / usr / include / c ++ / 8 / string: 40,
/ usr / include / c ++ / 8 / cstdint: 53: 11: error: ":: int_fast8_t" has not been declared
   using :: int_fast8_t;
           ^ ~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 54: 11: error: ":: int_fast16_t" has not been declared
   using :: int_fast16_t;
           ^ ~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 55: 11: error: ":: int_fast32_t" has not been declared
   using :: int_fast32_t;
           ^ ~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 56: 11: error: ":: int_fast64_t" has not been declared
   using :: int_fast64_t;
           ^ ~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 58: 11: error: ":: int_least8_t" has not been declared
   using :: int_least8_t;
           ^ ~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 59: 11: error: ":: int_least16_t" has not been declared
   using :: int_least16_t;
           ^ ~~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 60: 11: error: ":: int_least32_t" has not been declared
   using :: int_least32_t;
           ^ ~~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 61: 11: error: ":: int_least64_t" has not been declared
   using :: int_least64_t;
           ^ ~~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 63: 11: error: ":: intmax_t" has not been declared
   using :: intmax_t;
           ^ ~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 71: 11: error: ":: uint_fast8_t" has not been declared
   using :: uint_fast8_t;
           ^ ~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 72: 11: error: ":: uint_fast16_t" has not been declared
   using :: uint_fast16_t;
           ^ ~~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 73: 11: error: ":: uint_fast32_t" has not been declared
   using :: uint_fast32_t;
           ^ ~~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 74: 11: error: ":: uint_fast64_t" has not been declared
   using :: uint_fast64_t;
           ^ ~~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 76: 11: error: ":: uint_least8_t" has not been declared
   using :: uint_least8_t;
           ^ ~~~~~~~~~~~~
/ usr / include / c ++ / 8 / cstdint: 77: 11: error: ":: uint_least16_t" has not been declared

If I compile the program in c ++ 98 I have no problem.

Has anyone had this before, or do you know a solution?

Greetings Andre

Upvotes: 0

Views: 1166

Answers (2)

Ashutosh
Ashutosh

Reputation: 481

Please use flag as -std=c++11 in your make file or file compile command.

Upvotes: 0

TEDAVL
TEDAVL

Reputation: 1

Solved my program, and are happy to share it. After a lot of searching, I accidentally found the cause of the CSTDINT / STRING problem.

In the #INCLUDE STRING the #INCLUDE CSTDINT function is called, and in #INCLUDE CSTDINT #INCLUDE STDINT.H is called. Now there is also a stdint.h in my program, and one in the compiler, and that gives the problem.

How to resolve. Find the stdint.h file in the program, and delete it. That's all folks

Upvotes: 0

Related Questions