Wie finde ich heraus, wo eine Bibliothek installiert ist?

Wie finde ich heraus, wo eine Bibliothek installiert ist?

Ich habe libgoogle-perftools-dev über das Softwarecenter in Ubuntu 12.04 installiert. Wie vorgeschlagen vonhttp://pj.freefaculty.org/blog/?p=140, ich möchte meiner cpp-Datei hinzufügen:

#include <gperftools/profiler.h>

Aber der Compiler sagt

 gperftools/profiler.h: No such file or directory

Ich habe versucht herauszufinden, wo es ist:

$ locate -i gperftools

keine Rückkehr, und

$ locate -i "profiler.h"

kehrt zurück

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

von denen ich nicht sicher bin, ob sie dafür sind gperftools.

Ich frage mich, wie ich das herausfinden kann.

  • wo ist libgoogle-perftools-dev installiert?
  • wo befindet sich gperftools/profiler.h?

Antwort1

Das Problem mit dem locateBefehl besteht wahrscheinlich darin, dass die Datenbank noch nicht aktualisiert wurde, um die neu installierten Paketdateien widerzuspiegeln. Sie könnten ein Update erzwingen ( sudo updatedb) oder findstattdessen den Befehl verwenden, aber die wahrscheinlich einfachste Lösung auf Systemen wie Ubuntu, die die dpkgPaketverwaltungstools verwenden, besteht darin, den Paketinhalt aufzulisten

dpkg -L libgoogle-perftools-dev

oder um gezielt nach dem profiler.hDateispeicherort zu suchen

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

Antwort2

Normalerweise hilft pkg-config in den meisten dieser Fälle, pkg-config --list-allindem es Pakete auflistet, die Ihrem System „bekannt“ sind. Und dann pkg-config --libs --cflags <package>reicht es aus, Linker bereitzustellen und Informationen einzuschließen.

verwandte Informationen