O que faz a opção-c no GCC [fechado]
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?
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
- 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.
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.
...