Code blocks nao roda o executavel [RESOLVIDO]

1. Code blocks nao roda o executavel [RESOLVIDO]

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 20/06/2016 - 03:35h

Oi pessoal, eu estava na casa dos meus pais, voltei e fui escrever um código. Pra minha total infelicidade apenas no code blocks o programa roda. O executável não abre o console. O "hello world", por exemplo, só sai no terminal. Só a frase tosca. Nos meus dois notebooks aconteceu isso.
Removi e instalei de novo e nada. Mesma porcaria.


root@unyx:~# g++ '/home/unyx/Documentos/vaitomarnocu/main.cpp' -o teste_1
root@unyx:~# '/home/unyx/teste_1'
Hello world!
root@unyx:~#

é essa coisa que sai, ao invés do console. -.-

e não, não é falta de permissão. chmod +x, chmod 777
já fiz tudo que é clichê, nada resolve.

Alguma boa alma pra me ajudar???????


Att,

mrx6s0



  


2. MELHOR RESPOSTA

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 20/06/2016 - 06:25h

Amigo, está correto. Esse é o real funcionamento do programa: ele imprime a frase para o stdout, que no caso é o console que você está usando.
No C::B como não possui nenhum terminal em si, ele chama o xterm (se não me engano), que abre um novo console e imprime a mensagem.

Estou sem computador para testar, mas se não me engano o comando que ele executa é semelhante a este:

xterm -e "/home/user/programa"

Então se não sabia agora já sabe. Os aplicativos que usam interface gráfica não abrem um terminal juntos pois eles conseguem exibir mensagens nele mesmo.

Espero ter ajudado

[]'s

T+

https://pt.m.wikipedia.org/wiki/Xterm
--

Att,

Thiago Henrique Hüpner

http://pastebin.com/ZANutRt4

3. [RESOLVIDO.]

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 23/06/2016 - 06:22h

Valeu amigo. Compilei os outros programas e rodaram redondo.
Me equivoquei só. hehehe.

Agora to tentando resolver uns problemas que surgiram nuns programas usando a biblioteca pcap.

Tu manja disso? Dá "referência indefinida para pcap_lookupdev", e para várias outras funções... se puder ajudar fico grato!

E se tu curte programação podemos trocar uma ideia ate.


Abraço!


4. Re: Code blocks nao roda o executavel [RESOLVIDO]

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 23/06/2016 - 06:26h

Não tinha explorado o uso do xterm desse modo, bem interessante!

Vou me aprofundar.

Em scripts ficam legais; quando chama o xterm pra executar outras operações.

Abraço


5. Re: Code blocks nao roda o executavel [RESOLVIDO]

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 23/06/2016 - 06:55h

Ah, saquei... dá pra rodar os programas no xterm de boa.

root@kali:~# xterm '/home/mrx/sniffer_IEEE_802'
|

e abriu no xterm! :D

gosto do visual old-school do x hehehhe.





6. Re: Code blocks nao roda o executavel [RESOLVIDO]

Thiago Henrique Hüpner
Thihup

(usa Manjaro Linux)

Enviado em 23/06/2016 - 12:05h

Claro que podemos trocar umas ideias. Se tiver mais alguma dúvida, não hesite em perguntar

Se a dúvida foi respondida, por favor clique em Resolvido, e se minha resposta foi útil, por favor, clique em Melhor Resposta
Espero ter ajudado

[]'s

T+

--

Att,

Thiago Henrique Hüpner

http://pastebin.com/ZANutRt4


7. Melhor Resposta

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 23/06/2016 - 14:27h

Thihup escreveu:

Amigo, está correto. Esse é o real funcionamento do programa: ele imprime a frase para o stdout, que no caso é o console que você está usando.
No C::B como não possui nenhum terminal em si, ele chama o xterm (se não me engano), que abre um novo console e imprime a mensagem.

Estou sem computador para testar, mas se não me engano o comando que ele executa é semelhante a este:

xterm -e "/home/user/programa"

Então se não sabia agora já sabe. Os aplicativos que usam interface gráfica não abrem um terminal juntos pois eles conseguem exibir mensagens nele mesmo.

Espero ter ajudado

[]'s

T+

https://pt.m.wikipedia.org/wiki/Xterm
--

Att,

Thiago Henrique Hüpner

http://pastebin.com/ZANutRt4





8. programa com bibliotecas pcap

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 23/06/2016 - 14:35h

então, velho, tenho esse programa aqui, mas me retorna dois erros apenas, um é ''referência indefinida para pcap_lookupdev" e a outra é "referência indefinida para pcap_next".

O código é esse:
#include <stdio.h>
#include <stdlib.h>
#include <pcap.h> // or pcap/pcap.h //
#include <errno.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netinet/if_ether.h> /* includes net/ethernet.h */
#include <ctime>

int main(int argc, char **argv)
{
int i;
char *dev;
char errbuf[PCAP_ERRBUF_SIZE];
pcap_t* descr;
const u_char *packet;
struct pcap_pkthdr hdr; /* pcap.h */
struct ether_header *eptr; /* net/ethernet.h */
struct iphdr *ipheader;
u_char *ptr; /* printing out hardware header info */

/* grab a device to peak into... */
while(1)
{
dev = pcap_lookupdev(errbuf);

if(dev == NULL)
{
printf("%s\n",errbuf);
exit(1);
}

printf("DEV: %s\n",dev);

/* open the device for sniffing.

pcap_t *pcap_open_live(char *device,int snaplen, int prmisc,int to_ms,
char *ebuf)

descr = pcap_open_live(dev,BUFSIZ,0,-1,errbuf);

if(descr == NULL)
{
printf("pcap_open_live(): %s\n",errbuf);
exit(1);
}


/*
grab a packet from descr
u_char *pcap_next(pcap_t *p,struct pcap_pkthdr *h)
so just pass in the descriptor we got from
our call to pcap_open_live and an allocated
struct pcap_pkthdr */

packet = pcap_next(descr,&hdr);

if(packet == NULL)
{/* dinna work *sob* */
printf("Didn't grab packet\n");
exit(1);
}

/* struct pcap_pkthdr {
struct timeval ts; time stamp
bpf_u_int32 caplen; length of portion present
bpf_u_int32; lebgth this packet (off wire)
}
*/

printf("Grabbed packet of length %d\n",hdr.len);
printf("Recieved at ..... %s\n", ctime((const time_t*)&hdr.ts.tv_sec));
printf("Ethernet address length is %d\n",ETHER_HDR_LEN);

/* lets start with the ether header... */
eptr = (struct ether_header *) packet;

/* Do a couple of checks to see what packet type we have..*/
if (ntohs (eptr->ether_type) == ETHERTYPE_IP)
{
printf("Ethernet type hex:%x dec:%d is an IP packet\n",
ntohs(eptr->ether_type),
ntohs(eptr->ether_type));
}else if (ntohs (eptr->ether_type) == ETHERTYPE_ARP)
{
printf("Ethernet type hex:%x dec:%d is an ARP packet\n",
ntohs(eptr->ether_type),
ntohs(eptr->ether_type));
}else {
printf("Ethernet type %x not IP", ntohs(eptr->ether_type));
exit(1);
}

ptr = eptr->ether_dhost;
i = ETHER_ADDR_LEN;
printf(" Destination Address: ");
do{
printf("%s%x",(i == ETHER_ADDR_LEN) ? " " : ":",*ptr++);
}while(--i>0);
printf("\n");

ptr = eptr->ether_shost;
i = ETHER_ADDR_LEN;
printf(" Source Address: ");
do{
printf("%s%x",(i == ETHER_ADDR_LEN) ? " " : ":",*ptr++);
}while(--i>0);
printf("\n");

}
return 0;
}

Se tiver como me ajudar agradeço! alguns outros eu consegui, mas esse não tá indo...


9. Re: Code blocks nao roda o executavel [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 23/06/2016 - 16:02h

Na hora de compilar, inclua a opção -lpcap ao final da linha de comando, para incluir a referência à libpcap no executável.


10. Re: Code blocks nao roda o executavel [RESOLVIDO]

Roberto
mrx6s0

(usa Ubuntu)

Enviado em 01/07/2016 - 07:51h

paulo1205 escreveu:

Na hora de compilar, inclua a opção -lpcap ao final da linha de comando, para incluir a referência à libpcap no executável.


Obrigado, amigo. Me ajudou. Mas o executável não tá seguindo os comandos que coloquei no código... dá um crash e não "consegue" colocar a interface em modo de monitoramento... o programa só retorna device null. :/

Tava mexendo com shell script's, agora vou tentar resolver isso.

Se puderem me ajudar serei grato!!!

Abraços






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts