Почему ругается компоновщик?

319
03 мая 2017, 11:45

В чём проблема? Проясните пожалуйста нубу. В первый раз создаю многофайловый проект.

declarations.h

struct Students
{
    int Course;
    int NumGroup;
};
struct Menus
{
    void mainMenu();
};
Menus Menu;

defMenus.cpp

#include <iostream>
#include "declarations.h"
 void Menus::mainMenu() 
{
    system("pause");
}

main.cpp

#include "defMenus.cpp"
int main() 
{
     Menu.mainMenu();
}

Ошибки:

Ошибка  LNK2005 "public: void __thiscall Menus::mainMenu(void)" (?mainMenu@Menus@@QAEXXZ) уже определен в defMenus.obj  Studs   D:\C++Project\Studs\Studs\main.obj  1   
Ошибка  LNK2005 "struct Menus Menu" (?Menu@@3UMenus@@A) уже определен в defMenus.obj    Studs   D:\C++Project\Studs\Studs\main.obj  1   
Ошибка  LNK1169 обнаружен многократно определенный символ - один или более  Studs   D:\C++Project\Studs\Debug\Studs.exe 1   
Answer 1

Ошибка вот в этом:

#include "defMenus.cpp"

Включайте заголовочный файл с объявлениями, но не с реализациями (определениями).

READ ALSO
Получение ответа от QProcess

Получение ответа от QProcess

Необходимо запустить дочерний процесс, вводить и выводить данные из него последовательноОднако, если дочерний процесс имеет цикл ввода,...

504
Помогите пожалуйста перевести код с Pascal на С++ [требует правки]

Помогите пожалуйста перевести код с Pascal на С++ [требует правки]

Помогите пожалуйста перевести код с Pascal на С++

309
Проблема с inline

Проблема с inline

Здравствуйте! Пишу обработчик для WM_MOUSEMOVE для своего элемента UIЕсть массив этих элементов UI Сol *col[100000]={NULL}, часть которого не NULL

310
Смена языка сообщения error_code в boost

Смена языка сообщения error_code в boost

Когда я получаю ошибку в бусте, я могу ее прочитать, вызвав метод error_code::message()Я бы хотел, чтобы она выводилась на английском (сейчас она выводится...

328