使用Qt Vs添加进行编译时的链接器问题

时间:2011-07-11 15:53:09

标签: c++ visual-studio-2010 qt

我在.h文件中有逻辑,他们正在编译没有问题(标题保护已到位):

//file _1.h

#ifndef _1_HEADER
#define _1_HEADER
function definition in here
#endif

当试图包含这个文件并在vs中创建qt项目后编译时我得到错误:
错误7错误LNK1169:找到一个或多个多重定义的符号

我明白了。链接器抱怨因为(在那些头文件中)有完整的函数定义,但是因为它们被保护不应该是一个问题,特别是当这些相同的文件在编译时编译为非Qt项目时编译正常。

1 个答案:

答案 0 :(得分:0)

在不了解确切错误和查看文件的情况下,很难说,但重要的是要注意当您使用Qt moc时,Meta Object Compiler会为您生成包含各种信号定义的文件,等

因此,如果它只是Qt,我猜它与其中一个生成的文件有关。您可以查看moc_*ui_*文件,看看是否存在明显问题。

另一个选择是在显示问题的文件上运行C / C ++预处理器并搜索不同的定义,直到您可以确定它们的来源。