Причина ошибки, которую вы получаете, заключается в том, что, включив заголовочный файл, вы сообщаете компилятору о наличии символа
int add (int, int)
Это будет присутствовать во время компоновки, но вы фактически не включили этот символ (код функции) в свой проект. Быстрый способ решить эту проблему - просто добавить Add.cpp в оба проекта. Но «хорошим» решением, вероятно, было бы сделать SimpleMath библиотекой, а не приложением, изменив тип проекта в свойствах проекта.
И, кстати, вам, вероятно, нужен какой-то механизм для предотвращения многократного включения этого заголовочного файла. Я обычно использую #pragma once
, что должно быть хорошо, если вы придерживаетесь Visual C ++, но это может быть не совсем переносимо, поэтому, если вы хотите переносимости, используйте более традиционный подход обертывания файла заголовка в #ifndef
блоке :
#ifndef __ADD_H
#define __ADD_H
int add (int i, int j);
#endif
Удачи.