Compilando e executando um programa [RESOLVIDO]

1. Compilando e executando um programa [RESOLVIDO]

Fernando A. Vita
fernandoavita

(usa Debian)

Enviado em 09/06/2012 - 15:53h

Consegui compilar o programa que está no fim deste tópico, porém o programa não tem permissão de execução.

Já usei o chmod +x para dar permissão de execução, porém sem sucesso.

Dando um file no arquivo gerado, obtenho a seguinte informação:
"ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped"

Alguém sabe explicar o pq ou como posso resolver este problema?

Tentei compilar o programa de duas forma e o resultado é o mesmo. As formas foram:
1- g++ tst0.c -o tst0 -lmysqlclient
2- gcc tst0.c -o tst0 `mysql_config --libs --cflags`

Segue o programa compilado:

#include <stdio.h>
#include <mysql/mysql.h>

int main(void)
{
MYSQL conexao;

mysql_init(&conexao);
mysql_real_connect(&conexao,"localhost","user",NULL,"Locadora",0,NULL,0);
printf("\nConectado\n");
mysql_close(&conexao);

}



  


2. MELHOR RESPOSTA

Jonhnatha Trigueiro
joepreludian

(usa Debian)

Enviado em 09/06/2012 - 23:14h

Olá amigo! Seu exemplo funcionou fazendo o seguinte procedimento:
#apt-get install libmysql++-dev
#g++ tst0.c -o tst0 -lmysqlclient

Usei o debian squeeze pra realizar o teste.
Teste e veja se deu certo!

Sucesso! Abraços!

3. Re: Compilando e executando um programa [RESOLVIDO]

Fernando A. Vita
fernandoavita

(usa Debian)

Enviado em 10/06/2012 - 00:47h

joepreludian escreveu:

Olá amigo! Seu exemplo funcionou fazendo o seguinte procedimento:
#apt-get install libmysql++-dev
#g++ tst0.c -o tst0 -lmysqlclient

Usei o debian squeeze pra realizar o teste.
Teste e veja se deu certo!

Sucesso! Abraços!


Também estou no squeeze, e já estou com esta lib instalada. Porém no computador que te escrevo agora não obtive sucesso. Curioso é que fiz o teste em uma outra máquina squeeze e funcionou, mas nesta não funciona.

Eu trouxe o arquivo compilado na outra máquina para esta e tentei executar, obtive o seguinte erro:
"error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory"

Executando um ldd "no programa" tive como resposta:
linux-gate.so.1 => (0xf76f6000)
libmysqlclient.so.16 => not found
libc.so.6 => /lib32/libc.so.6 (0xf7593000)
/lib/ld-linux.so.2 (0xf76f7000)

Tentei reinstalar a libmysqlclient16, mas continuo obtendo o mesmo resultado. Fui verificar e há uma lib com este nome na pasta /usr/lib.


4. Resolvido

Fernando A. Vita
fernandoavita

(usa Debian)

Enviado em 10/06/2012 - 12:51h

Entendi o motivo do problema, mas não o porque dele.

Cheguei até a remover todo o mysql server e reinstalar só a lib específica, como fiz em um outro pc pra ver se funcionava, mas continuava com o mesmo problema.

O problema era que eu estava escrevendo e compilando os programas dentro de um pendrive, foi só passar o arquivo para o hd que o chmod +x funcionou e me deu permissão de execução. E compilando o arquivo no hd, automaticamente o arquivo já é gerado com a permissão de execução.


5. Re: Compilando e executando um programa [RESOLVIDO]

Fernando A. Vita
fernandoavita

(usa Debian)

Enviado em 10/06/2012 - 12:55h

Valeu joepreludian, apesar do meu problema ser outro, sua dica me ajudou bastante na hora de tentar encontrar qual era a solução do problema.
Agradeço a ajuda.
abraço!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts