gpt4 book ai didi

objective-c - Objective-C 中 C 函数的重复符号错误

转载 作者:太空狗 更新时间:2023-10-30 03:28:31 25 4
gpt4 key购买 nike

首先,我在编程中只真正使用过 Objective-c 方法。我决定用 c 函数做一些快速的数学计算,然后最终需要它们用于多个类。所以我将 c 函数放在一个单独的 .h 文件中。这工作正常,直到我尝试将 .h 文件导入多个类。然后我得到这个错误:

Duplicate Symbol *_myFunction* blah blah blah Linker command failed with exit code 1 (use -v to see invocation)

如何在多个类中使用一个 c 函数而不出现此链接错误。我试过只在我需要它们的类中定义函数,但似乎即使它们是不同的类,如果函数名称相同,我也会收到此错误。我可能在这里疯了,但有些帮助理解会很棒。

最佳答案

您应该将声明放在 .h 文件中,使它们成为外部文件,并将定义移动到 .c 或 .m 文件中。

由此

我的函数.h

int max(int a, int b) {
return a>b ? a : b;
}

移到这里:

我的函数.h

extern int max(int a, int b); // declaration

我的函数.c

int max(int a, int b) {
return a>b ? a : b;
}

关于objective-c - Objective-C 中 C 函数的重复符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10457811/

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