Таким образом, это не должно давать столько же проблем, сколько есть, но я пытаюсь создать более эффективный make-файл с использованием подстановочных операторов, в отличие от утомительного метода, который я использовал для использования, где вы проходите, и делаете каждый отдельный объект файл, а затем связать их вместе. Но, по какой-то причине, когда я пытаюсь запустить «сделать», это дает мне это:Ошибка в Makefile?
multiple definition of 'ScreenMgr::ScreenMgr()'
/path/to/ScrenMgr.cpp:4: first defined here
то она дает мне другую ошибку сразу после того, как этот, который говорит:
undefined reference to main
collect2: error: ld returned 1 exit status
Хотя до них ошибки, мои .o создаются и помещаются в соответствующий каталог, поэтому ошибка должна быть связана с компоновщиком. Я могу включить источник C++, если кто-то подумает, что это поможет, но файлы практически пусты, как есть (хотя я все еще помещаю защитники заголовков), потому что я просто хотел убедиться, что все ссылки правильно, во-первых, поэтому я могу справиться с таких проблем, не беспокоясь о коде. Структура каталогов выглядит следующим образом:
-MsSolver
|--src
| |--main.cpp
| |--ScreenMgr.cpp
|--include
| |--ScreenMgr.h
|--build #empty directory
|
|--Makefile
|:
|--bin
и вот Makefile:
Ваша проблема не в вашем файле Makefile. Ваша проблема в ScreenMgr.cpp или ScreenMgr.h –
Вероятно, у вас нет правильного включения защиты в файл заголовка. – Barmar
Или, может быть, вы определяете конструктор в '.cpp' и' .h'. – Barmar