2016-05-11 2 views
4

При компиляции моего C++ проект, который включает в себя uuid.h я получаю ошибку компиляции:Компилятор говорит uuid.h не найден, но склонные-прибуду говорят, что это

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

Я не уверен, что происходит неправильно. Это могут быть мои инструкции компилятора неправильные или что у меня действительно нет этого установленного файла (но я не думаю, что проблема).

sudo apt-get install uuid-dev

Вышеуказанные выходы команды: uuid-dev is already the newest version

Мой Makefile просто так:

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

Edit: В файле .h:

#include <uuid.h> 

Все идеи проблема может быть?

+0

Вы включаете его как '' или '" uuid.h "' – Deryck

+0

@Deryck Я делаю '#include ' –

ответ

2

Я bielive в новой версии UUID жатка <uuid/uuid.h>

3

Пакет-х file list показывает, что она содержит /usr/include/uuid/uuid.h. Поскольку ваш по умолчанию включает в себя путь ищет файлы относительно /usr/include, вам нужно либо написать <uuid/uuid.h>, либо добавить -I/usr/include/uuid в свои параметры компиляции.

Однако пакет также предоставляет файл .pc для использования с pkg-config, который предназначен для абстрагирования деталей, какие параметры компилятора необходимы для создания программы в библиотеке. Если вы запустите pkg-config --cflags uuid, вы получите результат -I/usr/include/uuid, и если вы запустите pkg-config --libs uuid, вы получите вывод -luuid. Они предназначены для включения в сборку вашей программы.

Так это выглядит, как вы используете сделать, вы должны добавить эти строки в Makefile:

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

Это будет incoroporate необходимых -I и -l параметров в командах процесса компиляции автоматически - и это будет также работают в других системах, где библиотека UUID может быть установлена ​​в другом месте.

Смежные вопросы