Como descobrir onde uma biblioteca está instalada?

Como descobrir onde uma biblioteca está instalada?

Instalei o libgoogle-perftools-dev via centro de software no Ubuntu 12.04. Como sugerido porhttp://pj.freefaculty.org/blog/?p=140, quero adicionar ao meu arquivo cpp:

#include <gperftools/profiler.h>

Mas o compilador diz

 gperftools/profiler.h: No such file or directory

Tentei descobrir onde está:

$ locate -i gperftools

sem retorno, e

$ locate -i "profiler.h"

retorna

/usr/include/c++/4.6/profile/impl/profiler.h
/usr/src/linux-headers-3.2.0-23-generic-pae/include/config/function/profiler.h

que não tenho certeza se são para gperftools.

Então eu me pergunto como encontrar

  • onde o libgoogle-perftools-dev está instalado?
  • onde gperftools/profiler.h está localizado?

Responder1

Provavelmente, o problema com o locatecomando é que o banco de dados ainda não foi atualizado para refletir os arquivos do pacote recém-instalados. Você poderia forçar uma atualização ( sudo updatedb) ou usar o findcomando, mas provavelmente a solução mais fácil em sistemas como o Ubuntu que usam dpkgferramentas de gerenciamento de pacotes é listar o conteúdo do pacote

dpkg -L libgoogle-perftools-dev

ou para verificar a profiler.hlocalização do arquivo especificamente

dpkg -L libgoogle-perftools-dev | grep 'profiler.h'

Responder2

Normalmente, pkg-config ajuda na maioria desses casos, pkg-config --list-alllistando pacotes que são "conhecidos" pelo seu sistema. E então pkg-config --libs --cflags <package>é bom o suficiente para fornecer vinculador e incluir informações.

informação relacionada