错误LNK1120和LNK2001

时间:2011-05-12 19:53:39

标签: c++ visual-c++ hyperlink

嘿伙计们我正在制作一个程序,它做了许多简单的事情来向我的老师表明我已经学会了使用函数。我已多次阅读此论坛并检查了许多其他论坛,但似乎没有一个能解决我的问题。 因为下面的代码是链接(我认为),我在错误列表中得到这些消息:

  

错误LNK1120:1个未解析的外部因素
  错误LNK2001:未解析的外部符号_mainCRTStartup

有人可以帮我解决这个问题!

这是我的代码

#include <iostream.h>
#include <math.h>

using namespace std;

int a;
int b;
float c;
int d;

float p_theorem (int side_a, int side_b){
    return sqrtf((side_a * side_a)+(side_b * side_b));
}

float p_theorem_reverse (int side_c, int side_d){
    return sqrtf((side_c * side_c)-(side_d * side_d));
}

void game(int x){
    if (x < 5){
        cout<<"Your number is too low"<<endl<<"Please guess again: ";
        cin>>x;
    }
    else if (x > 5){
        cout<<"Your number is too big"<<endl<<"Please guess again: ";
        cin>>x
    }
    else (x == 5){
        cout<<"Good job, You guessed the number!"<<endl;
        system("PAUSE");
    }
}

void stuff(){
    cout<<"Developed by Ely Eastman"<<endl<<"Computer 35, T.H. Rogers Secondary     School, Houston, TX"<<endl;
    system("PAUSE");
}

int main(void)
{
    cout<<"Welcome to the Multi-Function Program"<<endl
        <<"Enter 1 for finding the hypotenuse of a right triangle"<<endl
        <<"Enter 2 for finding the leg of a right triangle"<<endl
        <<"Enter 3 for the Guessing Game Beta"<<endl
        <<"Enter 4 for Developer Information"<<endl;

    cin>>d
    if (d == 1){
        cout<<"Welcome to the Pythagorean Theorem Solver"<<endl
            <<"Please enter the length of one leg of the     triangle: ";
        cin>>a;
        cout<<"Please enter the length of the other leg of the triangle: ";
        cin>>b;
        c = p_theorem(a, b);
        cout<<"The length of the hypotenuse is "<<c<<endl;
        system("PAUSE");
    }
    else if (d == 2){
        cout<<"Welcome to the Reverse Pythagorean Theorem"<<endl
            <<"Please enter the length of the Hypotenuse: ";
        cin>>a;
        cout<<"Please enter the length of the known leg: ";
        cin>>b;
        c = p_theorem_reverse(a, b);
        cout<<"The length of the leg is: "<<g<<endl;
        system("PAUSE")
    }
    else if (d == 3){
        cout<<"Welcome to the Guessing Game Beta"<<endl
            <<"Please guess a number 1-10: ";
        cin<<a
            game(a);
    }
    else if (d == 4){
        stuff();
    }

    return 0;
}

3 个答案:

答案 0 :(得分:1)

你有几十个失踪的“;”并且缺少if语句。游戏“g”的长度也是不确定的。你的cin“&gt;&gt;”在某些情况下,运营商会逆转......

编辑:正如Neil在评论中指出的那样,您可能需要指定您正在创建控制台应用程序。

工作?代码(请注意我改变了什么而不仅仅是复制/粘贴它,一些错误是非常基本的知识):

#include <iostream>
#include <math.h>

using namespace std;

int a;
int b;
float c;
int d;

float p_theorem (int side_a, int side_b){
    return sqrtf((side_a * side_a)+(side_b * side_b));
}

float p_theorem_reverse (int side_c, int side_d){
    return sqrtf((side_c * side_c)-(side_d * side_d));
}

void game(int x)
{
    if (x < 5)
    {
        cout<<"Your number is too low"<<endl<<"Please guess again: ";
        cin>>x;
    }
    else if (x > 5){
        cout<<"Your number is too big"<<endl<<"Please guess again: ";
        cin>>x;
    }
    else if (x == 5)
    {
        cout<<"Good job, You guessed the number!"<<endl;
        system("PAUSE");
    }
}

void stuff(){
    cout<<"Developed by Ely Eastman"<<endl<<"Computer 35, T.H. Rogers Secondary     School, Houston, TX"<<endl;
    system("PAUSE");
}

int main(void)
{
    cout<<"Welcome to the Multi-Function Program"<<endl
        <<"Enter 1 for finding the hypotenuse of a right triangle"<<endl
        <<"Enter 2 for finding the leg of a right triangle"<<endl
        <<"Enter 3 for the Guessing Game Beta"<<endl
        <<"Enter 4 for Developer Information"<<endl;

    cin>>d;
    if (d == 1){
        cout<<"Welcome to the Pythagorean Theorem Solver"<<endl
            <<"Please enter the length of one leg of the     triangle: ";
        cin>>a;
        cout<<"Please enter the length of the other leg of the triangle: ";
        cin>>b;
        c = p_theorem(a, b);
        cout<<"The length of the hypotenuse is "<<c<<endl;
        system("PAUSE");
    }
    else if (d == 2){
        cout<<"Welcome to the Reverse Pythagorean Theorem"<<endl
            <<"Please enter the length of the Hypotenuse: ";
        cin>>a;
        cout<<"Please enter the length of the known leg: ";
        cin>>b;
        c = p_theorem_reverse(a, b);
        cout<<"The length of the leg is: "<<c<<endl; // <- What is g?!!! I think you had a typo
        system("PAUSE");
    }
    else if (d == 3){
        cout<<"Welcome to the Guessing Game Beta"<<endl
            <<"Please guess a number 1-10: ";
        cin>>a;
            game(a);
    }
    else if (d == 4){
        stuff();
    }

    return 0;
}

答案 1 :(得分:0)

假设您使用的是Visual Studio 2005,请转到项目的属性,在配置属性中打开链接器 子系统将是列表中的第一个项目。然后选择Windows (/SUBSYSTEM:WINDOWS)

答案 2 :(得分:0)

检查项目设置,看看是否设置了/NODEFAULTLIB链接器选项。如果是,请取消设置。