Сборка нескольких файлов в C++
Каждый .cpp компилируется отдельно, затем линкер
склеивает результат.
Файл main.cpp может вызывать функцию, объявленную
в banner.h, потому что видит прототип. Тело функции
лежит в banner.cpp - его тоже нужно передать
компилятору, иначе линкер не найдет символ. В команде
g++ перечисляют все исходники .cpp
проекта.
Порядок .cpp в списке обычно не важен, но каждый
файл с определениями должен присутствовать. Заголовки
в команду не пишут - их текст попадает через #include.
Пусть main.cpp вызывает banner, а тело
лежит в banner.cpp. Соберем исполняемый файл
main:
g++ -std=c++20 main.cpp banner.cpp -o main
Соберите проект ping из main.cpp и
ping.cpp в исполняемый файл run.
Добавьте в сборку twice.cpp вместе с main.cpp
и проверьте вывод программы.