2016-05-11 14 views
4

ist, wenn meine C++ kompiliert Projekt, das ich Fehler bekommen die Kompilierung enthält uuid.h:Compiler sagt uuid.h nicht gefunden, aber apt-get sagt es

fatal error: uuid.h: No such file or directory

Ich bin mir nicht sicher, was falsch läuft. Es könnte sein, dass meine Compileranweisungen falsch sind oder dass ich diese Datei tatsächlich nicht installiert habe (aber ich denke nicht, dass das das Problem ist).

sudo apt-get install uuid-dev

Die obigen Befehl gibt: uuid-dev is already the newest version

Mein Make-Datei ist einfach:

all: 
    g++ -o bin/myapplication src/main.cpp -std=c++11 

Edit: In .h-Datei:

#include <uuid.h> 

Irgendwelche Ideen, was das Problem könnte sein?

+0

schließen Sie es ein wie '' oder '" uuid.h "' – Deryck

+0

@Deryck Ich mache '#include ' –

Antwort

2

I bielive in neueren Version des UUID der Header <uuid/uuid.h>

3

ist Paket ist file list zeigt, dass es /usr/include/uuid/uuid.h enthält. Da Ihr standardmäßiger Include-Pfad nach Dateien in Bezug auf /usr/include sucht, müssen Sie entweder <uuid/uuid.h> schreiben oder -I/usr/include/uuid zu Ihren Kompilierungsoptionen hinzufügen.

Das Paket enthält jedoch auch eine .pc-Datei zur Verwendung mit pkg-config, die die Details der Compileroptionen abstrahieren soll, die Sie zum Erstellen eines Programms für eine Bibliothek benötigen. Wenn Sie pkg-config --cflags uuid ausführen erhalten Sie die Ausgabe -I/usr/include/uuid, und wenn Sie pkg-config --libs uuid ausführen, erhalten Sie die Ausgabe -luuid. Diese sollen in den Build Ihres Programms integriert werden.

Da es so aussieht, die Sie verwenden, sollten Sie diese Zeilen zu Ihrem Makefile hinzufügen:

CFLAGS += `pkg-config --cflags uuid` 
LDFLAGS += `pkg-config --libs uuid` 

Das wird die erforderlichen -I und -l Optionen incoroporate in die Kompilierung automatisch Befehle - und es wird Sie können auch auf anderen Systemen arbeiten, auf denen die UUID-Bibliothek möglicherweise an einem anderen Ort installiert ist.

Verwandte Themen