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 locate
Befehl 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 find
stattdessen den Befehl verwenden, aber die wahrscheinlich einfachste Lösung auf Systemen wie Ubuntu, die die dpkg
Paketverwaltungstools verwenden, besteht darin, den Paketinhalt aufzulisten
dpkg -L libgoogle-perftools-dev
oder um gezielt nach dem profiler.h
Dateispeicherort zu suchen
dpkg -L libgoogle-perftools-dev | grep 'profiler.h'
Antwort2
Normalerweise hilft pkg-config in den meisten dieser Fälle,
pkg-config --list-all
indem es Pakete auflistet, die Ihrem System „bekannt“ sind. Und dann pkg-config --libs --cflags <package>
reicht es aus, Linker bereitzustellen und Informationen einzuschließen.