Вы не должны упоминать свой заголовочный файл в командной строке - вы не хотите компилировать его напрямую, а только так, как он включен в ваши исходные файлы. Кроме того, я бы позволил компилятору присваивать имена объектным файлам, так как слишком легко сделать опечатку, если делать это явно. Таким образом, ваши команды компиляции должны выглядеть так:
g++ -c file1.cc
и тогда вы также можете сказать:
g++ -c file1.cc file2.cc file3.cc