【问题标题】:Error: Unresolved external symbol错误:未解析的外部符号
【发布时间】:2012-10-17 07:23:43
【问题描述】:

我应该编写一个程序,读取以英尺和英寸为单位的长度并输出以米和厘米为单位的等效长度。至少使用三个函数:一个用于输入,一个或多个用于计算,一个用于输出。包括一个循环,让用户对新的输入值重复此计算,直到用户说他或她想要结束程序。谷歌用于不同单位之间的转换。问题是我应该使用引用函数调用。 所以,我试过了,但我一直收到这个错误:

错误 LNK2019:函数 _main 中引用的无法解析的外部符号“double __cdecl convert(double,double)”(?convert@@YANNN@Z)

我以前从未遇到过这个错误,所以我什至不明白它告诉我的内容。在我解决了这个问题后,我将加入循环,因为我已经知道如何做到这一点。谢谢。

#include <iostream>
#include <conio.h>

using namespace std;

int bLength, sLength;

void  length(double bLength, double sLength);
double  conv(double bLength, double sLength);
void  output(double bLength, double sLength);


int main()
{
length(bLength, sLength);
conv(bLength, sLength);
output(bLength, sLength);

getche();
return 0;
}

void length(double bLength, double sLength)
{
            cout<<"Enter a length in feet, then enter a length in inches if needed: ";
        cin>>bLength>>sLength;
    return;
}

double conv(double bLength, double sLength)
{
    bLength = bLength * 2.54;
    sLength = sLength * .3048;

    return bLength;
    return sLength;
}

        void output(double bLength, double sLength)
        {
            cout<<"Your input is converted to "<<bLength<<" meters, and "<<sLength<<"                 centimeters.";
    return;
}

【问题讨论】:

  • 你的函数convert是在哪里定义的?我只能看到它的声明。

标签: c++ linker-errors


【解决方案1】:

您的函数定义和声明不匹配。

double  convert(double bLength, double sLength);

然后你就这样实现它。

double conv(double bLength, double sLength)
{
  //code runs here
}

注意函数名的区别。

【讨论】:

  • 哇,谢谢。我讨厌忽略这样的事情。我觉得现在这是在浪费大家的时间。再次感谢你。虽然我刚刚意识到我的转换函数没有向输出函数返回正确的值。
  • 这可能是因为您将整数发送到接受double 值的函数。发送 double 值。
  • 我以为我发送的是双值。
  • 另外,我修复了这个功能,但它仍然没有被正确使用。函数不取值是否有原因?
  • bLengthsLength 变量声明为double,而不是int。根据您的函数的性质,它们应该是 double 而不是 int。
猜你喜欢
  • 2012-10-31
  • 2012-08-31
  • 1970-01-01
相关资源
最近更新 更多