9

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

重复符号 *_myFunction* blah blah blah 链接器命令失败,退出代码为 1(使用 -v 查看调用)

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

4

1 回答 1

15

您应该将声明放在 .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;
}
于 2012-05-05T00:43:01.470 回答