我在2013年用Gentoo Linux下的g ++ v.4.7.3和带有c ++ 11的Eclipse Indigo编译了我的项目。在这个项目中,我需要完美定义的整数大小。所以,我使用了u_int32_t,u_int8_t类型。
今天,我在Debian Jessie下有g ++ v.4.9.2,还有Eclipse Indigo。清理完项目后,重建导致"类型u_int32_t无法解析"。
我的编译器选项:
-DDEBUG -ULIMITED_CODE -UDON_T_GROUP_LINES -UREADABLE -ULIMIT_CODES -I/usr/include/c++/4.9.2/ -O0 -g3 -c -fmessage-length=0 -std=c++11
我的第一次尝试是在正确的位置添加#include <cstdint>
或#include <stdint.h>
(已弃用),但我得到了相同的错误。似乎我必须在u_int32_t
处替换uint32_t
。
我搜索过:type "could not be resolved" "u_int32_t" "uint32_t"
但一无所获。
另一个选择可能是使用与2013年相同版本的g ++和libs来设置Docker,但出于多种原因,我想转移到最近的编译器和库。
然后我的结论就是添加#include <cstdint>
并将u_int32_t
替换为uint32_t
。但我想确认一下这是正确的方法吗?