Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

x_file

[Resolvido] Linkar arquivos C para exec

Recommended Posts

1.

Estou tentando executar meu progama em que está divido em 2 arquvos C(principal.c / sqlite3.c) ,sendo que os dois estão compilados e sem erros porém tanto pelo terminal do linux e no Netbeans ele desconhece as funções do SQLite sendo que as mesmas estão declaradas no header.

 

build/Release/GNU-Linux-x86/principal.o: In function `main':

principal.c:(.text+0x23): undefined reference to `sqlite3_open'

principal.c:(.text+0x55): undefined reference to `sqlite3_exec'

principal.c:(.text+0x89): undefined reference to `sqlite3_get_table'

principal.c:(.text+0x12c): undefined reference to `sqlite3_free_table'

principal.c:(.text+0x137): undefined reference to `sqlite3_close'

principal.c:(.text+0x16c): undefined reference to `sqlite3_free'

principal.c:(.text+0x188): undefined reference to `sqlite3_errmsg'

principal.c:(.text+0x1ac): undefined reference to `sqlite3_close'

2.

Outra dúvida que tenho é uma library(sqlite-3.6.14.so) que tem a extensão .so e não sei como instalar isso no linux talvez seja pq o progama não funcione coloquei na pasta do projeto e mesmo assim no way

 

desde já agradeco a atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dá undefined reference porque você tem que linkar (-lsqlite3).

 

Não adianta colocar bibliotecas em um diretório que não é o padrão e não especificar o p/ o compilador.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta: gcc principal.c "caminho_pro_seu_arquivo_.a_ou.lib"

 

para usar a opção "-l" você tem que especificar onde o compilador vai buscar bibliotecas, faça isso com a opção "-L"

ou então especifique o caminho completo da biblioteca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Geralmente o que se passa como argumento para a opção -l não leva nenhuma extensão. Veja a manpage do header p/ saber como linkar (o math.h tem escrito "Link with -lm") e se tem que passar outras opções na compilação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia galera

 

Tentei de todas as formas mas em vão ;( , vou tentar ser um pouco mais claro . Tento uma pasta com meu projeto e no Netbeans com os sequintes arquivos:

Principal.C - com os algoritmos para acessar e inserir na tabela do meu banco de dados exemplo1,db

Sqlite3.C - com as API's

exemplo1.db - o banco de dados criado no SQLite3

 

e o header

Sqlite.H

 

na pasta do projeto tenho também os arquivos .o (sqlite3.o e principal.o)

 

Tanto pelo terminal quanto pelo Netbeans compila porém da o seguinte erro do "undefined reference " ainda.

 

tentei no terminal .. de várias formas... e nada ainda

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá galera demorei mas acabei conseguindo fiz uma revisão no código e na hora de compilar ocorreu tudo certo tive que usar -l para utilizar as funções do SQLite

obrigadooo

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.