[ad_1]
補遺
私は正しい道を進んでいますか?
「これを Linux のコピーの “im0plement” dbus に追加します ??? ”
nov25-1@nov251-desktop:~$ g++ -Wall –std=c++11 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include main .cpp -ldbus-1
これが何をするのかわかりません
main.cpp -ldbus-1 を含める
「アプリを追加する必要がありますか?? どの部分を追加しますか??」
クローン化された (オープンソース) 「アプリケーション」をプログラムに含めています。
必要な「include」ヘッダーを徐々に追加しています…
これを実行するまで
#include
(これは「バックスラッシュ dbus バックスラッシュ dbus ドット文字 h … を含める」と読む必要があります)
目に見える参照はありません。見落としているかもしれません。dbus.h が何をするか (github リソース内) …そしてそれがどこに存在するのか…
それが実際に「Linux システム」リソースである場合
どうやってリンクすればいいのでしょうか?
私が試したこと:
ゴーグルさんに尋ねると、「方法」はほとんど見つかりませんでしたが、Linux で「dbus.h」が何をするのかについての説明はありませんでした。
解決策 1
解決策 2
をインストールしましたか libdbus-1-dev
? ヘッダーは、ライブラリに対するプログラミングに必要なものすべてとともに、そのパッケージに含まれています。 こちらも検討してみてはいかがでしょうか libdbus-cpp-dev
、dbus ライブラリに CPP ラッパーを提供しているようです。
ヘッダーをワークスペースにコピーすることはお勧めできません。 #include ファイルは他の #include を参照することが多く、コンパイルするためだけに /usr/include の大部分をプロジェクト ディレクトリにコピーする必要がある場合があります。
IDE のドキュメントを参照する必要があります。 プロジェクトがヘッダーを見つけられるように、プロジェクト ファイルに適切なものを追加する方法を説明します。
手動でコンパイルする場合は、pkg-config について知っておく必要があります。 例えば
k5054@localhost$ pkg-config --list-all | grep dbus dbus-1 dbus - Free desktop message bus k5054@localhost$ pkg-config --cflags --libs dbus-1 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -ldbus-1
これを使用してコマンドラインからコンパイルできます。
g++ $(pkg-config --cflags --libs) program.cpp -o program
Makefile を使用している場合は、次のようなものを使用できます
CXXFLAGS = -Wall -Wextra $(shell pkg-config --cflags dbus-1) LDFLAGS = -lfoo -lbar $(shell pkg-config --libs dbus-1) ...
少し自信がないようなので、次のことを思い出してください。
-I adds a path to the compiler's search path for include files -L adds a path to the linker's search path for libraries (.so and .a) -l adds a library name to the linker's list of objects to include when trying to resolve external object names.
追記: apt-file を使用すると、どのパッケージ ファイルが属しているかを確認できます。 見る Linux apt-file コマンドのヘルプと例[^] インストールして実行したら apt-file update
apt-file データベースにクエリを実行して、指定された名前のファイルを含むパッケージを検索できます。
$ apt-file search dbus/dbus.h libdbus-1-dev: /usr/include/dbus-1.0/dbus/dbus.h libdbus-cpp-dev: /usr/include/core/dbus/dbus.h
これは、インクルード ファイル dbus/dbus.h が「共通」インクルード ファイルの一部ではないが、libdbus-1-dev パッケージのバーとして利用できることを示します。
[ad_2]
コメント