关于Qt下error: multiple definition of 的问题

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

 

你可能感兴趣的:(Linux,C++技术)