Для решения вашей проблемы таким образом вам следует использовать #include "Test1.cpp"
в Test2.cpp вместо включения Test1.h, а затем вызывать только g ++ с Test2.cpp.Таким образом, вы будете компилировать только один модуль компиляции, состоящий из всех исходных текстов как Test1.cpp, так и Test2.cpp.
Однако - это довольно плохая идея, поэтому не делайте этого.
Вместо этого вы должны организовать свои служебные функции в отдельные файлы, скажем, сначала просто в один файл Common.cpp с заголовочным файлом Common.h, чтобы упростить задачу.Затем вы компилируете и связываете эти файлы с каждым исполняемым файлом, который собираетесь создать.Это правильный способ сделать это, намного проще понять и работать с ним, и использование нескольких исходных файлов не делает ваши приложения больше.
В вашем случае, если вы переместили ваши общие методы, скажем, в Common.cpp / h, тогда вы будете делать что-то вроде этого:
g++ Test1.cpp Common.cpp # to build Test1.exe
g++ Test2.cpp Common.cpp # to build Test2.exe