bash: Nenhum arquivo ou diretório

0

Eu escrevi um programa C simples que usa a interface visual do GTK + (eu posso postar o código se for relevante). Eu posso compilá-lo sem erros ou avisos usando:

gcc -c s9p2.c 
pkg-config --cflags glib-2.0
pkg-config --cflags gtk+-2.0

Onde s9p2.c é o nome do programa. No entanto, quando tento executar o programa, recebo isto:

bash: ./s9p2: No such file or directory

Eu verifiquei com o comando ls e o arquivo está de fato lá. Eu também tentei instalar. Eu tentei googling para uma solução, e um que surgiu foi instalar o pacote ia32-libs. Eu fiz isso, mas não funcionou.

Eu gostaria de receber ajuda. Por favor, me perdoe se eu não estivesse claro.

EDIT: Como solicitado, esta é a saída de ls -l s9p2 * é:

-rw-rw-r-- 1 francisco francisco 2492 Jan  3 19:11 s9p2.c
-rw-rw-r-- 1 francisco francisco 6616 Jan  3 21:13 s9p2.o
    
por FranciscoS 03.01.2014 / 22:17

2 respostas

1

Seu erro principal é adicionar o -c flag ao seu comando - que diz gcc para compilar o arquivo de origem (produzindo um arquivo código de objeto s9p2.o ) mas pare com ligando com as bibliotecas necessárias para criar um programa executável ( s9p2 )

O comando correto deve ser algo como

gcc -o s9p2 'pkg-config --cflags glib-2.0' s9p2.c 'pkg-config --libs gtk+-2.0'

ou

gcc -o s9p2 s9p2.c 'pkg-config --cflags --libs gtk+-2.0'
    
por steeldriver 03.01.2014 / 22:44
0

Primeiro, o arquivo c não é o programa, o executável binário que deve ser chamado s9p2 (sem extensão), a menos que você especifique algo diferente que compila. Supondo que você tenha compilado para um executável, você precisa torná-lo executável como um programa, se ainda não o é:

O arquivo não é executável, tente executar:

chmod +x s9p2
    
por Julian Stirling 03.01.2014 / 22:28