Ir para conteúdo
Fórum Script Brasil
  • 0

Compilador C


KR0NU5

Pergunta

Olá!

Estou aprendendo Linguagem C, e na hora de compilar o arquivo .c, toda vez tenho que abrir o Terminal, ir na pasta onde está o arquivo e digitar: gcc arquivo.c -o arquivo.

Para não ter que fazer isso toda vez, decidi criar um compilador em Linguagem C. Então desenvolvi o seguinte código:

int main()
{
    char nomearquivo[100];
    char nomeexecutavel[100];
    printf("Digite o nome do arquivo a ser compilador SEGUIDO DE .C:\n");
    gets (nomearquivo);
    printf("Digite o nome do executável:\n");
    gets (nomeexecutavel);
    system ("gcc %s -o %s", nomearquivo, nomeexecutavel); //Esta linha
    return(0);
}

O problema é que na linha do system. Onde estão os "%s" não são substituído por "nomearquivo" nem "nomeexecutavel".

Teria algum erro nesse código?

Quem souber responde ae plz! :mellow:

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Bom dia KRONU5, a um tempo atras fiz um script que fazia a mesma coisa e tive o mesmo problema que você, para resolver este problema usei o comando "sprintf " para montar a string completa depois executei com o "system()"

ex:

char nomearquivo[100];

char nomeexecutavel[100];

char comp[100];

printf("Digite o nome do arquivo a ser compilador SEGUIDO DE .C:\n");

gets (nomearquivo);

printf("Digite o nome do executável:\n");

gets (nomeexecutavel);

sprintf(comp,"gcc %s -o %s", nomearquivo, nomeexecutavel);

system(comp);

return(0);

Posta se funcionar, estou no rwindows e não pude testar falou

Link para o comentário
Compartilhar em outros sites

  • 0
Bom dia KRONU5, a um tempo atras fiz um script que fazia a mesma coisa e tive o mesmo problema que você, para resolver este problema usei o comando "sprintf " para montar a string completa depois executei com o "system()"

ex:

char nomearquivo[100];

char nomeexecutavel[100];

char comp[100];

printf("Digite o nome do arquivo a ser compilador SEGUIDO DE .C:\n");

gets (nomearquivo);

printf("Digite o nome do executável:\n");

gets (nomeexecutavel);

sprintf(comp,"gcc %s -o %s", nomearquivo, nomeexecutavel);

system(comp);

return(0);
Posta se funcionar, estou no rwindows e não pude testar falou
Como faço para criar um compilador no code blocks.... Fiz umas linhas de codigo até que leu mas depois escrevi mas linhas ele diz que tem conflito de tipos. eu tenho pouco conhecimento em c... e tem alguns erros no programa, o ruim é que eu não tenho ninguém pra me ajudar nas dicas.
/* gera código para armazenamento de variável */
        void asm_allocvar(char name, char type)
        {
                int btype; /* tamanho em bytes */

                switch (type) {
                  case 'b':
                  case 'w':
                        btype = type;
                        break;
                  case 'l':
                        btype = 'd';
                        break;
                }
                printf("%c d%c 0\n", name, btype);
        }

vocês poderiam me ajudar com alguma dica se precisar me diga que eu coloco o codigo inteiro.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...