O que faz a opção-c no GCC [fechado]

Alguém sabe o que faz a bandeira em?

Por exemplo, Qual é a diferença entre

gcc -c output0.c
vs gcc output0.c

sei que o segundo faz um ficheiro .a mas não sei o que um ficheiro .a faz.

também o que faz o -o em

gcc output0.o -o output0
É só para dar o nome certo ao ficheiro de saída?

 6
Author: jww, 2013-02-06

3 answers

-c

Compilar ou montar os ficheiros de código, mas não ligar. Vinculacao o palco simplesmente não é feito. A saída final é na forma de um ficheiro de objectos para cada ficheiro de código.

Por omissão, o nome do ficheiro de objecto para um ficheiro de código é feito por a substituir o sufixo .C, .eu, .s, etc., com .o. entrada não reconhecida os arquivos, que não exigem compilação ou montagem, são ignorados.

-ficheiro

Colocar o resultado no ficheiro. Isto aplica-se independentemente de qualquer tipo de o resultado está sendo produzido, seja um arquivo executável, um objeto ficheiro, um ficheiro de montagem ou código C pré-processado. Se-o não é especificado, o padrão é colocar um arquivo executável em A. out, o ficheiro de objecto para o código.sufixo na fonte.o, o seu processo de montagem em fonte.s, um ficheiro de cabeçalho pré-compilado no código.sufixo.gch, e tudo fonte C pré-processada na saída padrão.

Mais pode ser encontrado na página de Manual do GCC

 9
Author: StarPinkER, 2013-02-06 08:15:52

- C irá indicar ao gcc para compilar apenas o ficheiro de código para um .o (object) file but does not invoke the linker.

Com um projecto que contém muitos.os ficheiros c Um serão normalmente compilados em primeiro lugar .C files to .o files and then link everything together with the libraries.

- c compilar ou montar os ficheiros de código, mas não ligar. A fase de ligação simplesmente não é >feito. A saída final é na forma de um objeto ficheiro para cada fonte arquivo.

      By default, the object file name for a source file is made by replacing the suffix >.c, .i, .s, etc., with .o.

      Unrecognized input files, not requiring compilation or assembly, are ignored.
 3
Author: JoG, 2013-02-06 08:16:42

De man gcc:

...

- c compilar ou montar os ficheiros de código, mas não ligar. A fase de ligação simplesmente não está concluída. A saída final está na forma de um ficheiro de objecto para cada ficheiro de código.

Por omissão, o nome do ficheiro de objecto para um ficheiro de código é feito por a substituir o sufixo .C, .eu, .s, etc., com .o.

Os ficheiros de entrada não reconhecidos, que não necessitam de compilação ou montagem, são ignorar.

...

 3
Author: GVerse, 2017-04-02 22:21:45