通常情况下,编译遇到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

本文探讨了在Qt项目中遇到的multiple definition of错误,通常由重复包含头文件或在.pro文件中重复引用源文件引起。通过使用预处理器指令或检查项目配置,可以有效避免此类编译错误。

1916

被折叠的 条评论
为什么被折叠?



