Intereting Posts
Как скопировать три файла одновременно, а не один файл за один раз в сценарии оболочки bash? CD не был записан правильно, но содержимое в порядке Применение наложения дерева устройств CIFS монтирует несколько копий одного и того же ресурса в одной точке подключения Сервер MySQL на Ubuntu не запускается после внесения изменений в my.cnf в Windows Каково поведение & operator Отключить прокрутку с двумя пальцами везде, где нет полосы прокрутки! Как запустить вентилятор вручную в Linux? Где спящий режим возобновляет получение узла устройства? Системные вызовы, поддерживаемые в запуске ядра Debian Stretch – шлюз смены пост-ап во второй интерфейс Перенаправить вывод ошибки grep в файл Список точек монтирования внешних устройств хранения, таких как USB-брелки и внешние диски SATA, из кли Изменение пароля Active Directory для учетной записи службы в Linux Обновление Ruby не работает с использованием двух методов

Зачем компилировать несколько файлов .cpp в один и тот же исполняемый файл?

Зачем вам это делать?

g++ -Wall -I/usr/local/include/thrift *.cpp -lthrift -o something 

вместо:

 g++ -Wall -I/usr/local/include/thrift -c Something.cpp -o something.o g++ -Wall -I/usr/local/include/thrift -c Something_server.cpp -o server.o g++ -Wall -I/usr/local/include/thrift -c your_thrift_file_constants.cpp -o constants.o g++ -Wall -I/usr/local/include/thrift -c your_thrift_file_types.cpp -o types.o 

а потом:

 g++ -L/usr/local/lib -lthrift *.o -o Something_server 

Правильно ли, что первый шаг по существу совпадает с второй последовательностью?

Кроме того, чтобы сделать их идентичными, должно быть Something_server something Something_server в первой строке?

Вы правы, что в конечном итоге вы получите тот же исполняемый файл (хотя и с другим именем); в первом случае gcc фактически создаст кучу временных файлов объектов, которые удаляются после компоновки, по сравнению со вторым случаем, когда вы сами делаете объектные файлы.

Основная причина делать то, что делает второй способ, – это обеспечить инкрементное построение . После того как вы однажды скомпилировали свой проект, скажите, что вы изменили Something.cpp . Единственный объект, затронутый файлом, – это something.o – Нет причин тратить время на восстановление других. Система сборки, такая как make , распознает это и только перестроит something.o прежде чем связывать все файлы объектов вместе.