编译 Qt 应用程序时架构 x86_64 错误的重复符号
Posted
技术标签:
【中文标题】编译 Qt 应用程序时架构 x86_64 错误的重复符号【英文标题】:duplicate symbols for architecture x86_64 error when compiling Qt application 【发布时间】: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
文件。
【参考方案1】:
N1ghtLight 发表评论作为答案。
Duplicate symbols found
错误是链接器错误,表示链接器找到了多个同名符号。以下是造成这种情况的一些常见原因。
cpp
文件中。
您已经定义了两次静态变量。
您在一个 cpp 文件中编写了两次函数定义。
您可以通过查看Qt Creator
中的Compile Output
选项卡来找出重复符号是什么
【讨论】:
【参考方案2】:就我而言,我在 myproject.pro 文件中添加了重复的标题。
ex) HEADERS += zzzz.h \
... a lot of xxxx.h \
zzzz.h (again)
我删除了重复的zzzz.h并构建成功。
【讨论】:
以上是关于编译 Qt 应用程序时架构 x86_64 错误的重复符号的主要内容,如果未能解决你的问题,请参考以下文章