gpt4 book ai didi

c - 重复符号和应用程序崩溃

转载 作者:行者123 更新时间:2023-12-03 03:44:41 26 4
gpt4 key购买 nike

我正在 AIX 上编译一个程序。编译成功,但出现以下警告:

ld: 0711-224 WARNING: Duplicate symbol: .basename
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.

我试图找到在“common.o”文件中找到的这个符号。

nm -X64 -f common.o | fgrep '.basename'

.basename T 3776 120

但是当在可执行文件上找到这个符号时,我发现以下内容:

nm -X64 CCF | fgrep '.basename'
.basename T 4295089984 120
.basename T 4295174672
.basename t 4295174672 40
  • 我可以显示包含此符号的库名称吗?

  • 这个符号出现在我的源文件中吗? (可能听起来很傻,但我真的不知道)

I have find the answer to this question that it can be traced in source.

  • 我应该采取什么措施来消除此警告?另外,这个重复的符号是否会导致应用程序崩溃?就我而言,它正在崩溃。

最佳答案

根据man page ,有两个版本的 basename(),一个 POSIX 和一个 GNU,看起来您正在链接它们。您需要根据您的需要选择其中一个并抑制另一个。手册页解释了如何操作。

由于它们的行为不同,为其中一个编译的代码在链接器/加载器将其绑定(bind)到另一个时可能会崩溃。如果您可以选择编译器,选择非 gcc 编译器可能会有所帮助。

关于c - 重复符号和应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12629145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com