2
respostas

"este aplicativo não pode ser executado em seu pc"

Olá a todos!

Eu consegui instalar o gcc e até consigo compilar, porém, de um jeito estranho. Quando estou no prompt eu digito gcc programa.c > programa.exe".

Em seguida são criados 2 executáveis, o primeiro com o nome programa.exe, com 0kb, e um segundo executável com o nome a.exe com 40kb.

Se eu executo o a.exe no prompt ele funciona. Agora, se eu tento executar o programa.exe aparece um erro do Windows dizendo "Este aplicativo não pode ser executado em seu pc. Para localizar uma versão para seu pc, consulte o fornecedor do software".

Alguém sabe me dizer o que está acontecendo?

Obrigado!

2 respostas

Cara, tenta gcc programa.c -o programa

Como você não especificou o nome do executável a ser gerado, o GCC usou o nome padrão (a.out no UNIX, a.exe no Windows). O manual completo do compilador pode ser encontrado em https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc.pdf

Se você tiver o gnu make instalado, use o script abaixo para compilar:


CC=gcc                          # poderia ser o clang
CFLAGS=-Wall -O3 -std=c11       # habilita warnings, 
                                # seta otimizações para o nível mais alto,
                                # estabelece o uso do padrão ISO C11 

SRC=$(wildcard *.c)
OBJ=$(SRC:.c=.o)
EXE=prog.exe                    # troque pelo nome que quiser que o executável tenha

all: $(EXE)

$(EXE): $(OBJ)
        $(CC) $^ -o $@ $(CFLAGS)

%.o: %.c
        $(CC) -o $@ -c $< $(CFLAGS)

clean:
        @rm *.o

remove: clean
        @rm prog.exe

Se o código ainda estiver em produção, desabilite otimizações removendo a flag -O3e adicione -g para habilitar que símbolos adicionais usados pelo GDB/LLDB sejam adicionados.

É uma boa prática automatizar a compilação e usar compilação separada. Isto simplifica o processo de build, e em geral reduz o tempo de compilação, pois um arquivo só é recompilado caso suas dependências tenham sofrido alteração. O manual da ferramenta make pode ser encontrado em https://www.gnu.org/software/make/manual/make.pdf

É muito mais fácil programar em C no Linux que no Windows. A configuração do ambiente, a instalação de bibliotecas e ferramentas, bem como atualização é muito mais simples. Dê uma olhada no Ubuntu, uma distro muito simples de instalar e usar; https://ubuntu.com. Caso você não queira usar um dual boot, uma boa opção é usar o WSL; ver https://docs.microsoft.com/pt-br/windows/wsl/install-win10 e https://ubuntu.com/wsl .