В моей системе заголовки dbus размещены в /usr/include/dbus-1.0/dbus/
а также dbus-arch-deps.h
это другое место (что кажется странным): /usr/lib/x86_64-linux-gnu/dbus-1.0/include/dbus/dbus-arch-deps.h
В мою программу я включаю #include<dbus-1.0/dbus/dbus.h>
но в каждом заголовочном файле, который включает в себя другие пути, выглядит так: #include<dbus/xxx.h>
Я могу скопировать dbus-arch-deps.h
в /usr/include/dbus-1.0/dbus/
но как исправить пути в заголовках dbus?
В вашей системе, вероятно, установлен pkg-config.
g++ $(pkg-config --cflags dbus-1) main.c
Pkgconfig содержит базу данных компоновщика / компилятора / и т.д. флаги, которые необходимы для использования определенных библиотек. Увидеть man pkg-config
для получения дополнительной информации.
Вам не нужно копировать файлы.
Просто добавьте путь где dbus
находится в вашем пути включения при компиляции с использованием I
флаг:
пример:
g++ -Wall -I /usr/include/dbus-1.0/ -o main.o
Используя местоположение, где находится dbus (в стандартном /usr/include
, вы можете ссылаться на файлы, как показано ниже в вашем исходном коде:
#include <dbus/xxx.h>
Точно так же, если вам нужно связать с dbus
вам нужно будет добавить этот путь к пути включения библиотек следующим образом:
g++ -Wall -I /usr/include/dbus-1.0/ -o main.o -L <dbus library path>
куда dbus library path is where the libraries of
дбус в прямом эфире. Чтобы выяснить это, обратитесь в Интернет или поищите в своей системе.
ОБНОВИТЬ:
Чтобы добиться этого в Qt-Creator (который я никогда не использовал), возможно, может помочь следующее:
Прежде всего вам необходимо установить и настроить его правильно.
Вы должны попробовать эту команду:
sudo apt-get -y install dbus libdbus-1-dev libdbus-glib-1-2 libdbus-glib-1-dev
Теперь вот Makefile, который вы должны написать для компиляции:
all:
g++ dbus.cpp -I/usr/include/dbus-1.0 \
-I/usr/lib/x86_64-linux-gnu/dbus-1.0/include \
-I/usr/include/glib-2.0 \
-I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ \
-ldbus-1 \
-ldbus-glib-1
Теперь вы можете включать файлы, такие как dbus / dbus.h, dbus / dbus-glib.h и т. Д.