编译libvmi 0.8版本时,出现以下错误:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -fvisibility=hidden -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -g -O2 -MT libvmi_la-pretty_print.lo -MD -MP -MF .deps/libvmi_la-pretty_print.Tpo -c pretty_print.c  -fPIC -DPIC -o .libs/libvmi_la-pretty_print.o

pretty_print.c:31: error: conflicting types for ‘vmi_print_hex’

libvmi.h:749: note: previous declaration of ‘vmi_print_hex’ was here

make[3]: *** [libvmi_la-pretty_print.lo] Fehler 1

make[3]: Leaving directory `/usr/local/src/libvmi-0.8/libvmi'

make[2]: *** [all-recursive] Fehler 1

make[2]: Leaving directory `/usr/local/src/libvmi-0.8/libvmi'

make[1]: *** [all-recursive] Fehler 1

make[1]: Leaving directory `/usr/local/src/libvmi-0.8'

make: *** [all] Fehler 2

解决方案:

libvmi/libvmi.h:void vmi_print_hex (unsigned char *data, unsigned long length);和

libvmi/pretty_print.c:void vmi_print_hex (unsigned char *data, size_t length)

中的数据类型改为一致的即可。

见其论坛:https://groups.google.com/forum/?fromgroups#!topic/vmitools/w76m93KevFg

常见此类问题的原因如下(引)

错误:
test.c:22: error: conflicting types for 'urlencode'
test.c:18: error: previous implicit declaration of 'urlencode' was here

原因一:
原来是因为没有先做函数声明,而函数位于main()之后。
在main函数前声明了函数原型后,一切ok.

原因二:

头文件的被循环引用,在引用时考虑清楚包含顺序

原因三:

头文件声明和定义参数稍有不同

例:

头文件中声明 void Hanlder(const char * buf);

在定义时写作 void Hanlder(char * buf);

这是就会发生conflicting types for 错误问题

conflicting types for xx错误的更多相关文章

  1. conflicting types for xxxx错误 (转)

    pretty_print.c:31: error: conflicting types for ‘vmi_print_hex’ libvmi.h:749: note: previous declara ...

  2. 编译器出现conflicting types for 某某的错误原因总结

    直译就是xxxx 发生了一种冲突!比如今天发现的这个错误,实属低级! 本次错误的原因是:函数没有先声明,便写在了主函数后面!应该是先声明,后定义,如果只有定义,则定义必须写在主函数上方.通过查资料,有 ...

  3. conflicting types for ‘方法名’ 的错误

    将main()的实现写在drawShapes(),drawCircle(),drawRectangle()...之前. 结果编译的时候出现了  conflicting types for " ...

  4. /usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’

    /usr/include/sys/types.h:62: error: conflicting types for ‘dev_t’/usr/include/linux/types.h:13: erro ...

  5. Xcode error: conflicting types for 'XXXX'

    问题描述:在main方法中调用了一个写在main方法后面的方法,比如: void main(){ A(); } void A(){} Xcode编译后就报错:conflicting types for ...

  6. openwrt编译e2fsprogs-1.43时报错misc/create_inode.c:399:18: error: conflicting types for 'copy_file_range'

    1. 详细报错信息 misc/create_inode.c:399:18: error: conflicting types for 'copy_file_range' static errcode_ ...

  7. warning: conflicting types for built-in function 'puts'

    warning: conflicting types for built-in function 'puts' [编译器版本] arm-linux-gcc 3.4.1 [问题描述] 在做嵌入式底层开发 ...

  8. mybatis报invalue types()错误

    错误信息: Cause: org.apache.ibatis.reflection.ReflectionException: Error instantiating class cn.qd.mybat ...

  9. 模板不存在:./xx 错误位置 FILE: LINE:110 (thinkphp上传至服务器后模板无法解析原因)

    thinkphp上传至服务器后模板无法解析原因 前几日做好的响应式静态页面上传至虚拟空间,打开网址地址出现: 模板不存在:./App/Admin/View/Config/customerService ...

随机推荐

  1. 康托展开&&康托逆展开

    康托展开 简介:对于给定的一个排列,求它是第几个,比如54321是n=5时的第120个.(对于不是1~n的排列可以离散化理解) 做法: ans=a[n]*(n-1)!+a[n-1]*(n-2)!+~~ ...

  2. Linux 程序设计1:深入浅出 Linux 共享内存

    笔者最近在阅读Aerospike 论文时,发现了Aerospike是利用了Linux 共享内存机制来实现的存储索引快速重建的.这种方式比传统利用索引文件进行快速重启的方式大大提高了效率.(减少了磁盘 ...

  3. 机器学习数据处理时label错位对未来数据做预测

    这篇文章继上篇机器学习经典模型简单使用及归一化(标准化)影响,通过将测试集label(行)错位,将部分数据作为对未来的预测,观察其效果. 实验方式 以不同方式划分数据集和测试集 使用不同的归一化(标准 ...

  4. 虚拟机克隆后导致两台机器的IP都不显示的解决方法

    centos7中输入ifconfig出现ens33,没有eth0,也没有ip,不能上网,输入ifconfig后如下图 之前在网上也找了很多的方法,比如删除文件70-persistent-ipoib.r ...

  5. javascript高级部分

    回顾 回顾: 整体: - HTML - CSS - JavaScript - 基本数据类型 - for,while.. - DOM - obj = document.getElementById('. ...

  6. oracle中的decode的使用(转)

    地址:http://www.cnblogs.com/juddhu/archive/2012/03/07/2383101.html 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值 ...

  7. ubuntu.windows桌面远程ubuntu的方法(附带安装图形桌面--可选)

    (1)首先通过Windows系统下连接Linux系统的命令行工具连接Ubuntu服务器,(工具:xshell,securecrt,putty等). (2)通过Windows下工具连接到Linux操作系 ...

  8. JNI编程实现(Windows)

    上一篇介绍了Linux平台的JNI编程方法,Windows平台的JNI本地调用基本类似,区别就是制作的动态库不同,Linux平台是*.so,Windows平台是*.dll.其中,Windows平台的函 ...

  9. UVa 127 - "Accordian" Patience POJ 1214 链表题解

    UVa和POJ都有这道题. 不同的是UVa要求区分单复数,而POJ不要求. 使用STL做会比較简单,这里纯粹使用指针做了,很麻烦的指针操作,一不小心就错. 调试起来还是很费力的 本题理解起来也是挺费力 ...

  10. GoDaddy账户间域名转移PUSH以及ACCEPT接受域名过户方法

    GoDaddy账户之间的域名进行过户PUSH.以及接受ACCEPT一般发生在我们有要求代购.交易域名账户之间的处理.一般的海外域名注册商账户之间是直接可以用户交易过户的,不需要经过商家允许,但是不同的 ...