Ir para conteúdo

POWERED BY:

Arquivado

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

euMesmo2

[Resolvido] adicionar biblioteca compilada ao Makefile

Recommended Posts

Alguem sabe como adicionar uma biblioteca ja compilada, no caso "curlpp", ao makefile?

Sei q vou ter que colocar dentro de "LOBS", mas com q prefixo?

PS: To usando Linux.

Segue abaixo parte do meu Makefile Atual:

    LIBS:=
    g++  -o"BuscadorCurso" $(LIBS)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi, você precisa usar a opção -l, que carrega uma biblioteca já compilada

 

Sim, mas qual seria o comando todo?

A biblioteca esta em "/usr/local/lib" La tem o arquivo "libcurlpp.la" e alguns links sei la pra onde.

Qual seria o comando complito?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$ g++ programa.c -l caminho_para_a_biblioteca
Não funcionou:

Building target: BuscadorCurso

Invoking: GCC C++ Linker

g++ -o"P1" ./buscador.o -l /usr/local/lib/libcurlpp.la

/usr/bin/ld: cannot find -l/usr/local/lib/libcurlpp.la

collect2: ld returned 1 exit status

make: ** [P1] Erro 1

make: O alvo `all' não foi reprocessado por causa de erros.

Build complete for project P1

Não seria o caso de usar "-L"?

andei lendoum pouco sobre na internete, mas não entendi nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquisem pessoal...

Pesquisem...

 

Nó fórum nós temos MUITO material de qualidade disponível...

http://forum.imasters.com.br/index.php?/topic/348057-tutorial-gcc-o-basico/

 

Não entendi. Li o seu tópico e analisei alguns makefiles ja prontos na web e o proprio makefile da minha IDE.

Então fui tentando várias maneiras até colocar:

g++ -L /usr/local/lib -lcurlpp
A partir de então funcionou... Perai, FUNCIONOU?

Alguem pode me esplicar o q aconteceu? Não to entendendo mais nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim não entendeu?

Não tem o que NÃO entender!

 

É só ler o tópico ou, ainda melhor, ler o manual do GCC.

É claro que funcionou, não tem o que dar erro!

Você indicou o local da biblioteca com -L, que no caso é /usr/local/lib

E indicou o nome da lib com -l, que no caso é curlpp

 

O compilador vai então procurar os seguintes arquivos:

/usr/local/lib/libcurlpp.a

/usr/local/lib/libcurlpp.so

/usr/local/lib/libcurlpp.la

/usr/local/lib/libcurlpp.dll

etc...

 

A que ele achar primeiro será linkada.

 

Se você efetuar a linkagem diretamente também funciona:

g++ meu_arquivo.cpp -o meu_programa.cpp "/usr/local/lib/libcurlpp.a"

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi. No caso eu estava fazendo errado ao utilizar -l/usr/local/lib/curlpp, pois o "-L" ja havia indicado o local correto.

Muito obrigado, ta funcionando bem agora.

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.