gcc [opções] arquivo
São algumas das opções do compilador gcc |
-c : compila sem linkeditar.
-D macro : define nome de macro a ser usada dentro do programa (podemos também definir uma macro dentro do programa C através da inclusão da linha "#define macro"). O uso de macros permite selecionar quais partes do código C devem ser compiladas. Por exemplo,
#ifdef teste_macroO compilador usará o conjunto de instruções 1 se a macro teste_macro tiver sido definida, senão usará o conjunto de instruções 2.
conjunto de instruções 1
#else
conjunto de instruções 2
#endif
-fPIC : gera código compilado independente de posição (permitindo que o código seja compartilhado por vários programas).
-g : gera informações para depuração (veja gdb) do programa.
-I diretório : adiciona diretório a lista dos diretórios pesquisados na busca por arquivos definidos por um comando include.
-l XXX : define biblioteca a ser incluida durante a linkedição. Ao nome especificado pelo usuário, é acrescentado "lib" como prefixo e ".a" e ".so" como sufixo, ou seja, o nome procurado neste exemplo é libXXX.a (biblioteca estática) e libXXX.so (biblioteca compartilhada).
-L diretório : adiciona diretório a lista dos diretórios pesquisados na busca por arquivos definidos como bibliotecas compartilhadas.
-o arquivo : nome do arquivo de saída executável (o nome padrão é a.out).
-shared : produz um objeto compartilhado que pode então ser linkeditado com outros objetos para formar um executável.
-w : omite todas as mensagens de advertência da compilação.
-Wall : exibe todas as mensagens de advertência da compilação.
Comentários sobre as opções do comando |
Por exemplo, o comando
gcc -o teste teste.c
compila o arquivo teste.c e cria, caso não haja erro de compilação, o arquivo teste.
Observações |
É possível que os pacotes referentes a compilação de programas C não tenham sido instalados junto com o sistema. Na distribuição Conectiva 5.0, por exemplo, use o comando rpm para fazer a instalação dos seguintes pacotes do CD 1:
binutils-2.9.5.0.24-2cl.i386.rpm
egcs-1.1.2-14cl.i386.rpm
glibc-2.1.2-11cl.i386.rpm
kernel-headers-2.2.14-14cl.i386.rpm
glibc-devel-2.1.2-11cl.i386.rpm