【发布时间】:2012-04-14 17:04:07
【问题描述】:
如果我将此函数内联并从 Objective-C 方法调用它,它会给我一个 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Vector addv(Vector v1, Vector v2) {// works
return (Vector){v1.x + v2.x, v1.y + v2.y, v1.z + v2.z};
}
inline Vector addv(Vector v1, Vector v2) {// if I call this, does not build
return (Vector){v1.x + v2.x, v1.y + v2.y, v1.z + v2.z};
}
为什么会这样,我能做些什么来解决它?
【问题讨论】:
-
也许你需要声明它
static inline或者放在一个头文件中。 -
@BasileStarynkevitch:它已经在头文件中。将其设为静态会做什么?
-
如果不是
static,该函数的代码仍会在每个目标文件中发出,因此该函数对链接器来说是多重定义的。
标签: objective-c c function inline