gpt4 book ai didi

c++ - 当一个参数是函数的返回值时调用 pow() 时出现链接器错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:36 25 4
gpt4 key购买 nike

考虑下面的代码:

    #include "../datatypes/stdam.h"
using namespace std;

int main(){
int val = pow(pow(3,2),2);
cout << val;
return 0;
}

在这里,stdam.h header 允许我使用 pow() 和 cout 功能。现在,当我运行上面的代码时,输​​出为 81,这符合预期。现在考虑上面的小修改,如下所示:

    #include "../datatypes/stdam.h"
using namespace std;

double testing() {
return pow(3,2);
}

int main(){
int val = pow(testing(),2);
cout << val;
return 0;
}

现在当我运行最后一段代码时,编译器抛出以下错误:

 /tmp/ccxC17Ss.o: In function `main':
test_1.cpp:(.text+0x2f): undefined reference to `pow(double, double)'
collect2: ld returned 1 exit status

我哪里错了?导致上述错误的原因是什么?

最佳答案

将标题更改为:

#ifndef _MATH_H_
#define _MATH_H_

extern "C"
double pow( double x, double y );

#endif

你真的应该包括 math.h 或 cmath

无论如何,请参阅 In C++ source, what is the effect of extern "C"? extern "C"

的重要性

关于c++ - 当一个参数是函数的返回值时调用 pow() 时出现链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25430900/

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