【问题标题】:duplicate symbols for architecture x86_64 error when compiling Qt application编译 Qt 应用程序时架构 x86_64 错误的重复符号
【发布时间】:2014-09-18 17:59:58
【问题描述】:

我正在尝试使用 Qt creator 在 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

【问题讨论】:

  • 请尝试检查 Qt Creator 输出控制台选项卡,并找出确切的 2 个符号重复。这个信息应该在那里。
  • 感谢 N1ghLight。不知道Qt creator中有编译器输出窗口
  • 这可能是您包含了两次.pri 文件。

标签: c++ macos qt


【解决方案1】:

N1ghtLight 发表评论作为答案。

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

  • 您在头文件中编写了函数定义(在 class),包含在两个或多个 cpp 文件中。
  • 您已经定义了两次静态变量。
  • 您在一个 cpp 文件中编写了两次函数定义。

您可以通过查看Qt Creator 中的Compile Output 选项卡来找出重复符号是什么

【讨论】:

    【解决方案2】:

    就我而言,我在 myproject.pro 文件中添加了重复的标题。

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

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

    【讨论】:

      猜你喜欢
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多