前几天在编译一个程序的时候遇到一个奇怪的问题,总是报:ld:multiple definition of******错误。
由提示可知道一个函数接口重复定义,但我搜索了整个源代码,并没有出现第二次。单独编译那个文件可以通过,而链接的时候并不能通过。
当时没有思路啦,就到网上查找相关资料。
网上资料:
http://blog.csdn.net/david_xtd/article/details/7789892(转载)
根据网上的资料显示应该是某一个文件被编译多次,
我检查Android.mk发现:
LOCAL_SRC_FILES包含这个文件两次。
总结:
1)当时马虎错误把一个文件添加进去后,过了一会以为没有添加进去,又添加了一次。
但Makefile是不会检测的。
2)出现这种错误另一种原因:这个文件编译两次生成不同的.o文件,只是名字不一样而已。