当前位置:  开发笔记 > IOS > 正文

为什么我会得到clang:错误:链接器命令失败,退出代码为1?

如何解决《为什么我会得到clang:错误:链接器命令失败,退出代码为1?》经验,为你挑选了1个好方法。

我是一个新手,正在使用Xcode慢慢地通过K&R.在功能部分,我输入了功率函数示例的代码,如下所示.

#include 

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;
}

当我尝试运行它时出现以下错误:

架构x86_64的未定义符号:"_ power",引用自:main.o中的_main ld:未找到架构x86_64 clang的符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我已经阅读了很多关于这个问题的答案,但是看不出它如何适用于我这种小程序的情况.
将不胜感激任何帮助.



1> Punit Vara..:

为什么会出现clang:错误:链接器命令失败,退出代码为1?

您刚刚声明了该函数。代码中没有任何定义。在链接过程中,编译器(此处为clang)无法将power函数链接到其定义,因此链接器在这种情况下会引发错误。如果您定义

int power(int x, int y)  
         { 
               \*do calculation*/
         }

然后链接器可以将您的power函数声明链接到其定义,您不会收到任何错误。

对于整数,我为您提供了功能。

#include 
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;
}

用编译 gcc file.c

希望您理解该功能。祝好运 :-)

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有