.exe arquivo criado por programação C através do compilador gcc não está executando

2

Estou usando o Ubuntu 12.04 no meu desktop e o Ubuntu 11.04 no laptop. Eu estou escrevendo c programa que contém matemática. Estou criando um arquivo executável através do comando:

gcc -o filename.exe filename.c -lm (compilation)

Isso criará um arquivo filename.exe. Agora posso executá-lo através do comando do terminal:

./filename.exe (execution)

Eu tenho laptop. Tem o Ubuntu 11.04. Eu armazeno arquivos na partição NTFS. Essa sequência de comandos funciona bem no meu laptop. Mas se o mesmo arquivo que eu copio na partição NTFS do meu desktop, que é o Ubuntu 12.04 e depois é executado, então não funciona. Compila mas não executa. Eu estou recebendo a resposta:

bash: ./filename.exe: Permission denied

Eu procurei na internet. Eles sugeriram que você pode alterar a permissão do arquivo pelo comando abaixo:

chmod u+x filename.exe

Mas recebi a mesma resposta: Permission denied . Eu tentei manualmente através da GUI através da propriedade - > permissão - > verificação "permitir a execução de arquivo como programa" e isso não está funcionando. Desmarca automaticamente. Eu procurei na internet e recebi a resposta que não é aconselhável alterar a permissão para cada arquivo a cada momento de execução. melhor você pode alterar a permissão de toda a partição NTFS, seguindo o comando:

chmod -R 777 /media/partition (where partition is NTFS type.)

Isso deve alterar a permissão da partição para o modo rw e executável. Mas isso também não resolve meu problema.

    
por Dharmeshkumar Patadiya 24.08.2012 / 08:10

4 respostas

2

Eu resolvi o problema. Eu segui o seguinte site.

Eu executei os seguintes comandos:

sudo blkid -c /dev/null (It will list all the partitions we have. In my computer, it displays,)
sudo umount /media/partitionname
sudo mkdir /media/partitionname
sudo mount /dev/sdaX -t ntfs-3g -o uid=1000,gid=1000,umask=002 /media/partitionname

em que partitionname é o nome da sua partição NTFS e em sdaX, X é o número obtido do primeiro comando, por exemplo, sudo blkid -c /dev/null .

Agora eu posso escrever o programa C, pode executar na mesma partição (em NTFS). Sem esses comandos, a cor do arquivo era branca quando o comando ls -al era usado. Mas agora a cor mudou para verde depois de listá-la no comando ls -al .

    
por Dharmeshkumar Patadiya 31.08.2012 / 12:11
1

Como já foi mencionado, o problema é causado pelo uso de NTFS, que não suporta permissões no estilo Unix.

Uma solução alternativa seria montar a partição para que TODOS os arquivos nela tivessem execute bit definido. Isso pode corrigir seu problema imediato, mas pode quebrar novamente ao compilar programas mais complexos. Também pode ser um risco de segurança.

Uma solução adequada seria não usar uma partição NTFS para compilar programas:)

    
por Sergey 24.08.2012 / 08:59
0

Existem algumas configurações em como você monta a partição NTFS que lhe nega o direito de executar arquivos nela. Você deve conseguir consertar isso editando as opções em seu / etc / fstab. Veja este tópico: link .

    
por Steve Kroon 24.08.2012 / 08:22
0

O problema é que você está usando o ntfs que não tem permissão de execução. Uma coisa que você pode fazer é adicionar 'exec' ao final dos parâmetros na entrada desta unidade em seu arquivo / etc / fstab

link https://bbs.archlinux.org/viewtopic.php?id=126406

    
por Jazz 24.08.2012 / 08:24