main.cpp не видит заголовочный файл
Наверное глупый вопрос, извините уж) Ну или видит его, и проблема в чем-то другом.
math.h
#ifndef MATH_H
#define MATH_H
int getSquareSides()
{
return 4;
}
#endif
geometry.h
#include "math.h"
Буду очень благодарен за любые рекомендации и помощь.
Ответы (2 шт):
Ваша проблема в том, что geometry.h в вашем проекте - исходный компилируемый файл, а не файл заголовка (см. правую часть скриншота). Кстати, текст ошибки недвусмысленно указывает на существование geometry.obj.
Вот вы и компилируете и получаете одну и ту же функцию в двух объектных файлах, и компоновщик оказывается в роли буриданова ишака, не понимая, какую же из функций выбрать...
Я думаю вы добавили в папку "Исходные файлы" сначала файл geometry.cpp, а потом переименовали его в geometry.h. Т.к. я воспроизвел у себя такую же ситуацию и получаю такие же ошибки.
Это происходит потому, что когда вы создаете .cpp файл, то ему в Visual Studio присваивается тип "Компилятор С/С++"
Чтобы исправить эти ошибки:
- Можно удалить полностью файл
geometry.hи сразу создавайте файл, как "Файл заголовка" (.h). - Щелкнуть правой кнопкой по нему, потом
Свойстваи изменить тип на"Заголовок C/C++"
Ну и лучше все таки создавать его в папке "Файлы заголовков", хотя роли не играет особо.
