cstdint字符串c ++> C11 int / usr / include / c ++ / 8 / cstdint:53:11:错误:':: int_fast8_t'尚未声明

问题描述 投票:0回答:1

我有一个用C ++ 1996编写的程序,我想将此程序编译为C ++ 17。添加#include时收到错误消息,并引用cstdint。缺少以下声明:

/ 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

如果我在c ++ 98中编译程序,则没有问题。

有人以前有过这个吗,或者您知道解决方案吗?

问候安德烈

string c++11 undeclared-identifier cstdint
1个回答
0
投票

解决了我的程序,很高兴分享它。经过大量搜索,我无意中找到了CSTDINT / STRING问题的原因。

在#INCLUDE STRING中,调用#INCLUDE CSTDINT函数,在#INCLUDE CSTDINT中,调用#INCLUDE STDINT.H。现在在我的程序中还有一个stdint.h,在编译器中还有一个stdint.h,这带来了问题。

如何解决。在程序中找到stdint.h文件,并将其删除。这就是所有的人

© www.soinside.com 2019 - 2024. All rights reserved.