编译Qt应用程序时出现体系结构x86_64的重复符号错误

duplicate symbols for architecture x86_64 error when compiling Qt application

本文关键字:错误 符号 x86 应用程序 Qt 体系结构 编译      更新时间:2023-10-16

我正试图使用Qt创建者在osx上编译一个Qt应用程序。应用程序在寡妇中成功编译。但在mac中,它给出了以下链接器错误。

2 duplicate symbols for architecture x86_64
linker command failed with exit code 1 (use -v to see invocation)

有人知道检查链接器抱怨的重复符号的方法吗?我在.pro文件中使用了以下内容,但没有成功。

QMAKE_LFLAGS += -v

通过N1ghtLight发布评论作为回答。

Duplicate symbols found错误是一个链接器错误,表示链接器找到了多个具有相同名称的符号。以下是造成这种情况的一些常见原因。

  • 您已经在头文件中编写了函数定义(在类),其被包括在两个或多个cpp文件中
  • 您已经定义了两次静态变量
  • 您已经在cpp文件中编写了两次函数定义

您可以通过检查Qt Creator 中的Compile Output选项卡来找出哪些重复符号

在我的例子中,我在myproject.pro文件中添加了重复的头。

ex) HEADERS += zzzz.h  
... a lot of xxxx.h 
zzzz.h (again) 

我删除了重复的zzzz.h并成功构建。