我是一个新手,正在使用Xcode慢慢地通过K&R.在功能部分,我输入了功率函数示例的代码,如下所示.
#include <stdio.h>
int power(int m, int n);
int main()
{
int i;
for (i=0; 1<10; ++i)
printf("%d %d %d\n", i, power(2,i), power(-3,i));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时出现以下错误:
架构x86_64的未定义符号:"_ power",引用自:main.o中的_main ld:未找到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)
我已经阅读了很多关于这个问题的答案,但是看不出它如何适用于我这种小程序的情况.
将不胜感激任何帮助.
为什么会出现clang:错误:链接器命令失败,退出代码为1?
您刚刚声明了该函数。代码中没有任何定义。在链接过程中,编译器(此处为clang)无法将power
函数链接到其定义,因此链接器在这种情况下会引发错误。如果您定义
int power(int x, int y)
{
\*do calculation*/
}
Run Code Online (Sandbox Code Playgroud)
然后链接器可以将您的power
函数声明链接到其定义,您不会收到任何错误。
对于整数,我为您提供了功能。
#include <stdio.h>
int power(int base, int exp);
int main()
{
int i;
for (i=0; i<10; ++i)
printf("%d %d %d\n", i, power(2,i), power(-3,i));
return 0;
}
int power(int base, int exp)
{
int result = 1;
while (exp)
{
if (exp & 1)
result *= base;
exp >>= 1;
base *= base;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
用编译 gcc file.c
希望您理解该功能。祝好运 :-)
归档时间: |
|
查看次数: |
42073 次 |
最近记录: |