无法解析的外部符号(LNK2019)

时间:2018-09-04 09:50:10

标签: c++

我是C ++的新手。我正在尝试开发C ++应用程序,但是有一个错误令我烦恼。

  

在函数“ int __cdecl invoke_main(void)”中引用的错误LNK2019无法解析的外部符号_main

我想我已经在另一个文件中引用了所有功能

这是我的cpp文件的代码:

#include "stdafx.h"




int console::main()
{
    system("cls");
    cout << "-----------ABC Homestay Management System-----------" << endl;
    cout << "------------------------------------------------------------" << endl;

system("color 0f");
cout << "Please enter your choice" << endl;
cout << "1.Upload listings" << endl;
cout << "2.Find listings" << endl;
cout << "3.View listings" << endl;
cout << "4.Exit" << endl;

int choice;
cin >> choice;

switch (choice) {
case 1:
    //renter();
    break;
case 2:
    //finder();
    break;
case 3:
    //listings();
    break;
case 4:
    exit(0);
    break;
case 8:
    //staff();//secret key -> 8 for staff
    break;
}

    system("pause");
main();
return 0;
 }

    void console::finder() {
        system("cls");
            cout << "test" << endl; 

    }

这是我在cpp文件中引用的“ stdafx.h”头文件:

    #pragma once

#include "targetver.h"
#include <iomanip>
#include <ctime>
#include <time.h>

#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <regex>
#include <stdlib.h>
#include <string.h>
#include<algorithm>
#include<iterator>
#include <chrono>
#include <thread>

using namespace std;



class console {

public:
    console() {}
    ~console() {}
    int main();
    void renter();
    void finder();
    void listings();
    void staff();



};

3 个答案:

答案 0 :(得分:4)

您的程序没有main函数,这是C ++程序的入口。 console::main()函数无法满足此目的,顺便说一句,您程序中根本没有任何类型为console的变量,因此您永远无法调用console的任何方法类。我认为您应该从头开始阅读C ++教科书。

您想要这个:

...
int main()
{
  console myconsole;
  myconsole.main();
}

还有顺便说一句,这很可恶:

system("pause");
main();          // you probably want to remove this
return 0;

您可能想在这里循环。

答案 1 :(得分:1)

在C ++中,程序的入口点是main函数,它必须在任何类之外。在您的代码中,您在int main()类内声明了console

答案 2 :(得分:1)

所有c ++程序都必须具有一个名为main的入口函数,该入口函数不属于任何类。

正确的例程将是一个主要功能,它将创建代表程序大部分的对象,然后运行该主要功能:

int main()
{
  console myconsole;
  myconsole.main();
}