Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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)
>
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?
$ g++ programa.c -l caminho_para_a_biblioteca
>
$ 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.
Usei:
g++ -L /usr/local/libParece q encontrou a biblioteca, mas não reconheceu a maioria dos namespaces. E agora, José...
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/
>
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 -lcurlppA partir de então funcionou... Perai, FUNCIONOU?Alguem pode me esplicar o q aconteceu? Não to entendendo mais nada.
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"
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.
Pelo que entendi, você precisa usar a opção -l, que carrega uma biblioteca já compilada