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」をクリックします。
そこから、必要に応じて派生/変更を開始できます。