我有一个项目源代码
它包含uchar_t
我需要在Ubuntu 13.10中编译这个项目 但是在运行汇编时它发出警告:
unknown type name ‘uchar_t’
任何人都有想法解决。替换uchar_t或其他解决方案...
答案 0 :(得分:4)
看来,uchar_t
表示某些字符,在这种情况下,您可能希望将其设为unsigned
字符类型,例如:
typedef unsigned char uchar_t;
这是否有效取决于代码的真正意图。没有上下文,就无法分辨出预期的内容。在任何一种情况下,我都会在战略位置使用typedef
而不是替换类型。同样,uint_t
可能意味着
typedef unsigned int uint_t;
这些typedef
是否做正确的事情,但需要进行验证。
答案 1 :(得分:2)
这可能是unsigned char
的别名。
答案 2 :(得分:1)
uchar_t
,ushort_t
,uint_t
和ulong_t
类型是sys/types.h
中定义的Solaris特定类型,并被注释为POSIX扩展。该评论含糊不清,可能意味着它们是(特定于供应商)对POSIX标准的扩展,而不是它们的一部分。其他一些系统定义它们,其他系统不定义它们(cygwin,Linux)。它们非常简单,可以通过添加
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
项目标题中的某处。我非常喜欢它们,因为它们更短,1个字,遵循POSIX和inttypes.h
命名风格,非常明显。