Я пытаюсь узнать, как использовать файлы заголовков в проектах C ++, поэтому я создал файлы .cpp, содержащие простые функции, чтобы убедиться, что я правильно делаю все объявления и включения.Все работало нормально, когда у меня был только один набор файлов .cpp и .h, но когда я пытаюсь добавить еще, я получаю ошибки.
Для начала, в моем проекте у меня было:
helloworld.cpp
#include "helloworld.h"
#include <iostream>
#include <cstdio>
using namespace std;
int HelloWorld() {
puts("Hello, World!");
cout << "Hello, World!" << endl;
return 0;
}
helloworld.h
#ifndef HELLOWORLD_H_INCLUDED
#define HELLOWORLD_H_INCLUDED
int HelloWorld();
#endif /* HELLOWORLD_H_INCLUDED */
main.cpp
#include "helloworld.h"
#include <iostream>
using namespace std;
int main(){
HelloWorld();
return 0;
}
Который построен без ошибок и работает правильно.
Затем я попытался добавить второй файл .cpp и .h, что привело к ошибкам сборки.
pointers.cpp
#include "pointers.h"
#include <iostream>
using namespace std;
int Pointers() {
int x = 1;
int *ptr_a = &x;
cout << *ptr_a << endl;
return 0;
}
pointers.h
#ifndef POINTERS_H_INCLUDED
#ifndef POINTERS_H_INCLUDED
int Pointers();
#endif /* POINTERS_H_INCLUDED */
иизмененный main.cpp:
#include "helloworld.h"
#include "pointers.h"
#include <iostream>
using namespace std;
int main(){
HelloWorld();
Pointers();
return 0;
}
Теперь, когда я пытаюсь собрать, я получаю сообщение об ошибке, говорящее, что есть несколько определений main - одно в main.cpp, а другое в pointers.cpp.
Еще более странно, что если я создаю новый проект и делаю то же самое, но меняю порядок, в котором я создаю файлы .cpp и .h (т.е. сначала указатели, а затем helloworld), он собирается и работает правильно, простофайлы указателей, но при добавлении файлов helloworld возникает та же самая ошибка, говоря, что множественные исключения main находятся вmain.cpp и helloworld.cpp.
Я полагаю, что это как-то связано с самим Eclipse, но я не знаю, в чем конкретно проблема.
Кто-нибудь знает, что может бытьпроисходит?