我有一个用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中编译程序,则没有问题。
有人以前有过这个吗,或者您知道解决方案吗?
问候安德烈
解决了我的程序,很高兴分享它。经过大量搜索,我无意中找到了CSTDINT / STRING问题的原因。
在#INCLUDE STRING中,调用#INCLUDE CSTDINT函数,在#INCLUDE CSTDINT中,调用#INCLUDE STDINT.H。现在在我的程序中还有一个stdint.h,在编译器中还有一个stdint.h,这带来了问题。
如何解决。在程序中找到stdint.h文件,并将其删除。这就是所有的人