Problema com .exe compilado pelo Geany

Iniciado por Ssk, 16 de Agosto de 2016, 18:36

tópico anterior - próximo tópico

Ssk

Eu comecei a programar recentemente e tive um pequeno problema com o compilador, quando eu executo pelo próprio Geany(com F5) funciona perfeitamente como podem ver na imagem:



Mas se eu tento abrir o executável, não funciona, alguém poderia me ajudar?


Darcamo

Na verdade está funcionando sim, só que você não vê isso acontecer. Eu explico.

Esses programas que você está criando são "aplicações para console". Elas não possuem qualquer tipo de interface gráfica e rodam apenas no terminal. Dessa forma elas não "abrem alguma coisa" quando você clica duas vezes no executável no gerenciador de arquivos. O programa é sim executado, mas como nada foi aberto você não teve como ver o "Hello World" que seria impresso. Para ver o Hello World você deve executar o programa via terminal.

Para executar esse programa "a0", por exemplo, você precisa abrir um terminal, navegar via terminal (usando o comando "cd") para a pasta onde ele está e digitar "./a0" para rodar o programa. Nesse caso sim você vai ver o "Hello World" porque o terminal está aberto e você pode ver o que é impresso nele. Você pode também ao invés de navegar para a pasta do programa colocar o caminho completo do programa para executá-lo, como por exemplo "/home/seu_usuario/pasta_on_ele_esta/a0".

Com respeito a "funcionar no geany" (ou em qualquer outra IDE), quando você aperta o f5 no geany o geany sabe que você está criando uma aplicação para console. O próprio geany abre um terminal e executa o seu programa no terminal aberto para que você possa ver a saída dele. Além disso, o geany ainda faz com que o terminal não feche logo após o programa terminar (é o geany e não o seu programa que coloca aquele "press return to continue" no final).

Para completar, e mostrar que um programa é sim executado quando você clica nele duas vezes no navegador de arquivos, tente compilar o programa abaixo (C++).
#include <fstream>

using namespace std;

int main(int argc, char *argv[])
{
  ofstream arquivo;
  arquivo.open("saida.txt");

  arquivo << "Hello World" << endl;
 
  return 0;
}


Esse programa vai criar um arquivo chamado "saida.txt" contendo "Hello World". Perceba que após compilar esse programa no geany você pode ir no gerenciador de arquivo e clicar duas vezes nele. Mesmo que você não veja nada acontecer, você poderá perceber que o arquivo "saida.txt" foi criado corretamente indicando que o programa de fato foi executado.

Ssk

Muito obrigado cara, resolveu minha dúvida.