для матюгов |
[May. 5th, 2034|09:23 am] |
|
|
|
Comments: |
| From: | dolmatt |
Date: | February 3rd, 2019 - 11:47 pm |
---|
| | can involve up to | (Link) |
|
https://gcc.gnu.org/onlinedocs/gcc/Overall-Options.htmlCompilation can involve up to four stages: preprocessing, compilation proper, assembly and linking, always in that order. GCC is capable of preprocessing and compiling several files either into several assembler input files, or into one assembler input file; then each assembler input file produces an object file, and linking combines all the object files (those newly compiled, and those specified as input) into an executable file. Я не понимаю, является ли трансляция в ассемблерный код обязательным этапом.
| From: | ketmar |
Date: | February 4th, 2019 - 04:15 am |
---|
| | Re: can involve up to | (Link) |
|
а я не понял вопроса. что именно и зачем ты хочешь узнать?
| From: | dolmatt |
Date: | February 4th, 2019 - 08:41 pm |
---|
| | Re: can involve up to | (Link) |
|
Разбираюсь, из каких этапов состоит компиляционный процесс с помощью GNU toolchain. > и зачем Потому что компиляция сначала в ассемблерный код, а затем в машинный, должна отнимать больше времени, чем если транслировать исходники directly в машинный. VS по умолчанию сразу генерирует машинный код.
| From: | ketmar |
Date: | February 5th, 2019 - 04:07 am |
---|
| | Re: can involve up to | (Link) |
|
>VS по умолчанию сразу генерирует машинный код потому что вендотулзы — говно.
>должна отнимать больше времени meh. unnoticeable. компилятор не должен знать о структуре объектных или бинарых файлов. и даже о кодировании команд, тащемта. именно поэтому компилятор не делает линкинг, не пишет библиотек — а пишет человекочитаемый промежуточный формат, который потом обрабатывается утилитами, знающими всё, что надо знать.
вон, dmd пошёл по вендопути — и до сих пор там есть баги в писалке объектников, которые не то что починить — у которых причину найти не могут. | |