Qemu ビルドが「致命的なエラー: scsi/sg.h: そのようなファイルまたはディレクトリはありません」で失敗する

Qemu ビルドが「致命的なエラー: scsi/sg.h: そのようなファイルまたはディレクトリはありません」で失敗する

kvmを実行するためにQemuをソースからビルドしようとしています。https://wiki.qemu.org/ホスト/Linux. その結果、次のエラー メッセージが表示されます。

block/file-posix.c:67:21: 致命的なエラー: scsi/sg.h: そのようなファイルまたはディレクトリは存在しないため、コンパイルが終了しました。

CC ブロック/nbd-client.o

qemu/rules.mak:69: ターゲット 'block/file-posix.o' のレシピが失敗しました

ヘッダー ファイルは /usr/src/linux-headers-4.13.0-41/include/scsi/sg.h にあります。失敗の原因は何でしょうか。

答え1

aptを使用して、パッケージング用に通常構築される方法で開始できます。あなたが言及したエラーは、依存関係が不足しているように見えますが、これは次のように自動的にプルされます。

apt-get build-dep qemu

これはディストリビューションが qemu をビルドするための構成であることを認識する必要があります。したがって、ディストリビューションで使用されるソースを取得し、debian/rules で何が行われるかを確認することができます。

# for Xenial it will be 2.5
apt install dpkg-dev
apt-get source qemu
vim qemu-2.5+dfsg/debian/rules

または、リリースビルドログ(および有効なconfigure呼び出し)を以下から確認することもできます。qemu パッケージ例えばxenial のビルドログ これを行うには、必要なバージョンをクリックし、次に興味のあるアーキテクチャをクリックしてから、「buildlog」をクリックします。

そこから、必要に応じて派生/変更を開始できます。

関連情報