¿Cómo saber dónde está instalada una biblioteca?

¿Cómo saber dónde está instalada una biblioteca?

Instalé libgoogle-perftools-dev a través del centro de software en Ubuntu 12.04. Como lo sugierehttp://pj.freefaculty.org/blog/?p=140, quiero agregar a mi archivo cpp:

#include <gperftools/profiler.h>

Pero el compilador dice

 gperftools/profiler.h: No such file or directory

Intenté encontrar dónde está:

$ locate -i gperftools

sin retorno, y

$ locate -i "profiler.h"

devoluciones

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

para lo cual no estoy seguro si son gperftools.

Entonces me pregunto cómo encontrar

  • ¿Dónde está instalado libgoogle-perftools-dev?
  • ¿Dónde se encuentra gperftools/profiler.h?

Respuesta1

Probablemente el problema con el locatecomando es que la base de datos aún no se ha actualizado para reflejar los archivos del paquete recién instalado. Podrías forzar una actualización ( sudo updatedb) o usar el findcomando en su lugar, pero probablemente la solución más fácil en sistemas como Ubuntu que usan dpkgherramientas de administración de paquetes es enumerar el contenido del paquete.

dpkg -L libgoogle-perftools-dev

o para comprobar la profiler.hubicación del archivo específicamente

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

Respuesta2

Por lo general, pkg-config ayuda en la mayoría de estos casos pkg-config --list-alla enumerar paquetes que son "conocidos" por su sistema. Y luego pkg-config --libs --cflags <package>es lo suficientemente bueno como para proporcionar un enlazador e incluir información.

información relacionada