我在.h文件中有逻辑,他们正在编译没有问题(标题保护已到位):
//file _1.h
#ifndef _1_HEADER
#define _1_HEADER
function definition in here
#endif
当试图包含这个文件并在vs中创建qt项目后编译时我得到错误:
错误7错误LNK1169:找到一个或多个多重定义的符号
我明白了。链接器抱怨因为(在那些头文件中)有完整的函数定义,但是因为它们被保护不应该是一个问题,特别是当这些相同的文件在编译时编译为非Qt项目时编译正常。
答案 0 :(得分:0)
在不了解确切错误和查看文件的情况下,很难说,但重要的是要注意当您使用Qt moc时,Meta Object Compiler会为您生成包含各种信号定义的文件,等
因此,如果它只是Qt,我猜它与其中一个生成的文件有关。您可以查看moc_*
和ui_*
文件,看看是否存在明显问题。
另一个选择是在显示问题的文件上运行C / C ++预处理器并搜索不同的定义,直到您可以确定它们的来源。