blkid.h 形式の定義は次のとおりです。
typedef struct blkid_struct_dev *blkid_dev;
これは、blkid.h に blkid_struct_dev タグが表示される唯一のケースです。
grep -rl blkid_struct_dev /usr/include
/usr/include/blkid/blkid.hのみが返されます。だから私は構造体が私がインストールしていない-devパッケージで定義されていると仮定します(ただし、私のSlackwareボックスの他の場所には表示されず、Slackwareはパッケージにすべてのヘッダーを含めます)。
この構造はどこで定義されていますか?
答え1
Ubuntu PCでも同じ問題が発生し、構造体宣言だけが見つかりました。定義はutil-linuxソースコードのblkidP.hファイルにあることがわかりました。このライブラリを使用してプログラムをコンパイルするときは、blkid.hの宣言のみが必要なので、blkidP.hは必要ありません。ライブラリをコンパイルするだけです。