sqlite3fun.c:155: first defined here execSqlite3 closeSqlite3 getSqlite3dbName编译不通过

来源:互联网 发布:井冈山大学网络平台 编辑:程序博客网 时间:2024/04/30 16:45

LINUX 主机使用makefile编译C程序 sqlite3函数报错

/XXX/XXX/com/src/sqlite3fun.c:155: multiple definition of `openSqlite3'
/XXX/XXX/com/obj/common.o:/XXX/XXX/com/src/sqlite3fun.c:155: first defined here
/XXX/XXX/com/obj/sqlite3fun.o: In function `execSqlite3':
/XXX/XXX/com/src/sqlite3fun.c:222: multiple definition of `execSqlite3'
/XXX/XXX/com/obj/common.o:/XXX/XXX/com/src/sqlite3fun.c:222: first defined here
/XXX/XXX/com/obj/sqlite3fun.o: In function `closeSqlite3':
/XXX/XXX/com/src/sqlite3fun.c:205: multiple definition of `closeSqlite3'
/XXX/XXX/com/obj/common.o:/XXX/XXX/com/src/sqlite3fun.c:205: first defined here
/XXX/XXX/com/obj/sqlite3fun.o: In function `getSqlite3dbName':
/XXX/XXX/com/src/sqlite3fun.c:256: multiple definition of `getSqlite3dbName'
/XXX/XXX/com/obj/common.o:/XXX/XXX/com/src/sqlite3fun.c:256: first defined here
/usr/bin/ld: Warning: size of symbol `getSqlite3dbName' changed from 574 in /XXX/XXX/com/obj/common.o to 613 in /XXX/XXX/com/obj/sqlite3fun.o

解决办法:

很有可能编译时用到了重复的链接库文件 例如:

ALLOBJ = $(ALLCOM) ${SETTLE_MAIN}/com/obj/common.o ${SETTLE_MAIN}/com/obj/sqlite3fun.o

ALLOBJ = $(ALLCOM) ${SETTLE_MAIN}/com/obj/common.o


可以视情况 去掉后面的sqlite3fun.o文件




0 0