Вы, вероятно, пытались скомпилировать и связать, а не просто скомпилировать исходные файлы, или что-то забыли.
Вариант один (все в одной строке; все время перекомпилируется):
g++ -o myexecutable first.cpp second.cpp third.cpp [other dependencies, e.g. -Lboost, -LGL, -LSDL, etc.]
Вариант два (шаг за шагом; если не указано -o
, gcc будет повторно использовать имя входного файла и просто изменит расширение, когда не будет ссылки; этот вариант лучше всего использовать для make-файлов; позволяет пропустить неизмененные части):
g++ -c first.cpp
g++ -c second.cpp
g++ -c third.cpp
g++ -o myexecutable first.o second.o third.o [other dependencies]
Вариант три (некоторые заполнители):
Не буду перечислять его, но параметры, упомянутые выше, также могут быть заполнителями, например g++ -c *.cpp
скомпилирует все файлы cpp в текущей директории в o (bject) файлы с одинаковыми именами.
В целом, вы не должны слишком беспокоиться об этом, если вам действительно не нужно работать без какой-либо IDE. Если вы не очень разбираетесь в синтаксисе командной строки, вначале придерживайтесь IDE.