перечислить все остальные файлы cpp после main.cpp.
т.е.
g++ main.cpp other.cpp etc.cpp
и так далее.
Или вы можете скомпилировать их все по отдельности. Затем вы связываете все полученные файлы «.o» вместе.
Теперь, когда я разделил классы на .h и .cpp файлы, нужно ли мне использовать makefile или я все еще могу использовать команду "g++ main.cpp"?
Компиляция нескольких файлов одновременно - плохой выбор, если вы собираетесь поместить это в Makefile.
Обычно в Makefile (для GNU/Make) достаточно написать так:
# "all" is name of the default target, running "make" without params would use it
all: executable1
# for C++, replace CC (c compiler) with CXX (c++ compiler) which is used as default linker
CC=$(CXX)
# tell which files should be used, .cpp -> .o make would do automatically
executable1: file1.o file2.o
Таким образом make
будет правильно перекомпилировать только то, что нужно перекомпилировать. Можно также добавить несколько настроек для генерации зависимостей заголовочных файлов - чтобы make также правильно перекомпилировал то, что нужно перекомпилировать из-за изменений в заголовочных файлах.
При желании вы все равно можете использовать g++ напрямую:
g++ f1.cpp f2.cpp main.cpp
, где f1.cpp и f2.cpp — это файлы с функциями в них. Для получения подробной информации о том, как использовать make для выполнения сборки, см. отличную GNU make documentation.
Вы можете использовать несколько команд g++, а затем связать, но проще всего использовать традиционный Makefile или какую-либо другую систему сборки: например, Scons (которые часто легче настроить, чем Makefiles).