通常情况下,编译遇到multiple definition of重复定义的问题都是由于多次引入.h文件导致的,这种情况可以通过#pragma once或者以下方式解决:
#ifndef TEST_H
#define TEST_H
// 变量和函数定义
#endif
但在Qt中还有一种情况会导致error: multiple definition of 的问题,那就是在.pro项目文件的SOURCES += 和HEADERS +=中重复引用了同一个文件,如下:
SOURCES += \
Log.cpp \
md5.cpp \
Log.cpp \
md5.cpp \
main.cpp
可以看到,在SOURCES +=里Log.cpp和md5.cpp引用了两次,所以Log.cpp和md5.cpp定义的变量和函数都会报error: multiple definition of的错误。
解决办法:把重复的去掉即可。
SOURCES += \
Log.cpp \
md5.cpp \
main.cpp