いくつかの自分がハマったポイントなども含めて書いておきます。
Windows以外、VisualStudio以外の人でも一応役に立つかもしれません。
Visual Studio向けにはプロジェクトテンプレートが用意されているのでそれをそのまま使えばほとんど困ることはないのですが、この記事では出来るだけ1から解説したいので「空のプロジェクト」から設定する方法も書いておきます。
- 空のプロジェクトを作成する。
- ソースファイルが全くないと一部のプロパティ項目が出ないので、main.cppを追加する。
- プロジェクトの「プロパティ」→「C/C++」→「全般」→「追加のインクルードディレクトリ」からVulkanインストールディレクトリ内の「Include」ディレクトリのパスを追加
- 「プロパティ」→「リンカー」→「入力」→「追加の依存ファイル」から「vulkan-1.lib」を追加
- 「プロパティ」→「リンカー」→「全般」→「追加のライブラリディレクトリ」から、64ビット(x64)向けにはVulkanインストールディレクトリ内の「Lib」ディレクトリのパスを追加、32ビット(Win32)向けには「Lib32」ディレクトリのパスを追加
- 「リンカー」→「システム」→「サブシステム」から「Windows(/SUBSYSTEM:WINDOWS)」を選択
- 「リンカー」→「詳細設定」→「エントリポイント」に「mainCRTStartup」と指定
- 以下のソースコードをmain.cppに追記する。
#include <vulkan/vulkan.hpp>
int main() {
return 0;
}それから、以下はテンプレートからプロジェクトを作った人も設定する項目です。
- 「プロパティ」→「全般」→「プラットフォームツールセット」から使用できる最新のツールを指定(空のプロジェクトから作成した場合不要)
どうやらVulkanSDK同梱のテンプレートだとVisual Studio 2015のツールセットを使用する設定になってしまっているらしく、これを設定する必要があります。 - ソースコードの先頭に以下の行を追記
#define VULKAN_HPP_TYPESAFE_CONVERSION
なんかこれやんないと型変換関係のエラーがいっぱい出るみたいです。
- Windowsの場合、ソースコードの先頭に以下の行を追記
#define VK_USE_PLATFORM_WIN32_KHR
なんかこれやんないとWindows由来の機能が使えないみたいです。Linux向けやMac向けにもプラットフォーム向けのそういうマクロ定義があるみたいです(詳細未確認)
- 「プロパティ」→「詳細」→「文字セット」から「マルチバイト文字セットを使用する」を選択
どうやらvulkan.hppの記述はTCHARがchar型なのを前提に書かれてるみたいです。これはVulkanというよりVulkanHppがだめですね。
以上でvulkan.hppのインクルードと空のmain関数の書かれたコードがコンパイルできるはずです。質問があったらコメントで書いて頂ければ(出来る範囲で)対応するかと思いますが、Windows以外のプラットフォーム特有の話だと無理かもしれません。