С++ программа при компиляции выдаёт ошибки LNK2019 и LNK1120
Я только начал изучать С++ и чуть ли не в каждом коде сталкиваюсь с этими ошибками. Вообще не могу понять, в чём дело.
Сам код:
#include <iostream>
using namespace std;
void prog2() {
int min, max, s = 0;
cout << "Введите диапозон чисел" << endl;
cin >> min;
cin >> max;
for (; min <= max; min++) {
if (min % 2 == 1) {
s += min;
}
}
cout << s;
}
Ошибки:
Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка LNK2019 ссылка на неразрешенный внешний символ main в функции "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ). Project1 D:\C++\Project1\Project1\MSVCRTD.lib(exe_main.obj) 1
Серьезность Код Описание Проект Файл Строка Состояние подавления Ошибка LNK1120 неразрешенных внешних элементов: 1 Project1 D:\C++\Project1\x64\Debug\Project1.exe 1
Ответы (1 шт):
Автор решения: Anton Menshov
→ Ссылка
C++ программа (executable) в стандартном случае должна иметь точку входа: то бишь, что нужно делать по ее запуску. По умолчанию, это будет функция main(), которой у вас нету.
Если переписать ваш код, просто поместив суть в main():
#include <iostream>
using namespace std;
int main() {
int min, max, s = 0;
cout << "Введите диапозон чисел" << endl;
cin >> min;
cin >> max;
for (; min <= max; min++) {
if (min % 2 == 1) {
s += min;
}
}
cout << s;
return 0;
}
или добавив main() уже вызывающую вашу функцию prog2()
#include <iostream>
using namespace std;
void prog2() {
int min, max, s = 0;
cout << "Введите диапозон чисел" << endl;
cin >> min;
cin >> max;
for (; min <= max; min++) {
if (min % 2 == 1) {
s += min;
}
}
cout << s;
}
int main() {
prog2();
return 0;
}
то вышеописанные проблемы должны исчезнуть. Собственно, первая ошибка:
LNK2019 ссылка на неразрешенный внешний символ main
вам и пытается на это намекнуть. Просто не очень доходчиво.