Другие языки программирования и технологии

C++ ошибка -- "[Error] ld returned 1 exit status" . Помогите рештить

При компиляции выдает: "[Error] ld returned 1 exit status". Как решить помогите) А и вот ещё мой проект:
main.cpp

"

#include <conio.h>

#include <stdio.h>

#include <iostream>

#include "hello.cpp"

int main(){

hello();

_getch();

return 0;

}

"

hello.cpp

"

#include <conio.h>

#include <stdio.h>

#include <iostream>

void hello(){

std::cout << "Hello!" << std::endl;

}

"
Mikhail Икс
148
Попробую угадать. Какую ошибку пишет до этого? Что-то типа duplicate symbol "void hello()" ?
Если да, то у Вас оба .cpp-файла уже подключены к проекту, а Вы дополнительно пытаетесь через #include подставить один .cpp файл внутрь другого. Получается, что ф-ция hello опредляется в двух разных .cpp файлах, а это ошибка для линкера. Уберите этот конкретный инклюд, по правилам хорошего тона .cpp файлы один в другой не инклюдят, хоть и не запрещено формально. Их просто суют в проект.

А чтобы из файла main.cpp была видна ф-ция hello, достаточно объявить ее прототип (гуглите прототипы функций) . И прототипы ф-ций для удобства выносят часто в .h- файлы, которые и инклюдят. Прототип можно хоть 20 раз объявить, ошибки не будет, а саму функцию - только один раз
ИР
Игорь Рыжов
19 662
Лучший ответ
Хм, вот это нахрена #include "hello.cpp". Инклудят вроде хедары
Rustem Gazizov
Rustem Gazizov
35 594
А хедерный где?
Антон Щербинин
Антон Щербинин
25 952
#include
#include
using namespace std;

int main()
{
{

cout << "close this program beach" << endl;
system("pause");
}
{

int a=148;
int b=145;
int c=a+b;
cout << c << endl;
int d=1;
int f=c+d;
cout << f << endl;
}
{
setlocale (LC_ALL, "RUSSIAN");
int h = 4;
if(h == 5)
{

cout << "Ïåðåìåííàÿ h ðàâíà ïÿòè" << endl;
}
else
{

cout << "Ïåðåìåííàÿ h íå ðàâíà ïÿòè" << endl;
}
}
}
C:\Program Files (x86)\Dev-Cpp\Lang\collect2.exe[Error] ld returned 1 exit status
Выдает эту ошибку
Что делать? все перепроверил ошибок нет, но при компиляции такое выдает.