前回は、Visual Studio Communityエディションを使って、VS のC++用プロデューサーSDK をビルドしましたが、今回は無償のIDEとして人気の Visual Studio Code(以下、VSCode)でビルドしてみようと思います。
VSCode は公式サイトから、ダウンロードしてインストールします。
また、Git や CMake、Strawberry Perl、GStreamer もインストールされている前提です。
もしまだインストールしていない場合は、こちらの記事を参考にインストールしてください。
今回は、前回インストールした、Visual Studio 2022 Community エディションの環境を使いますが、gcc や Windows SDK 、Build Tools for Visual Studio などでもいけると思います。
まず、VSCode を起動し、拡張機能から「CMake Tools」を検索してインストールします。
VSCode で CMakeLists.txt が含まれるフォルダを開きます。
C:\YourPath\amazon-kinesis-video-streams-producer-sdk-cpp
初回にどのコンパイラを使うか選択します。
今回は、こちらを選択しました。
Visual Studio Community 2022 Release - amd64
こんな感じで CMake の処理が始まります。便利。
GStreamerプラグインとしてビルドしたいので、CMakeSettings.json に以下のように記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
{ "configurations": [ { "name": "x64-Debug", "generator": "Ninja", "configurationType": "Debug", "inheritEnvironments": [ "msvc_x64_x64" ], "buildRoot": "${projectDir}\\out\\build\\${name}", "installRoot": "${projectDir}\\out\\install\\${name}", "cmakeCommandArgs": "", "buildCommandArgs": "", "ctestCommandArgs": "", "variables": [ { "name": "BUILD_GSTREAMER_PLUGIN", "value": "True", "type": "BOOL" } ] } ] } |
※今回は、Visual Studio 2022 Community エディションで作業したときの、CMakeSettings.json が残っていたのでそれを再利用しました。
CMakeLists.txt を右クリック、すべてのプロジェクトのビルドを選択します。
ビルドにはしばらく時間がかかりますので、気長に待ちます。
こんなメッセージが表示されたら完了です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
[main] Building folder: Repos [main] Configuring folder: Repos [proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -Sc:/work/Source/Repos -Bc:/work/Source/Repos/build -G "Visual Studio 16 2019" -T host=x64 -A x64 [cmake] Not searching for unused variables given on the command line. [cmake] -- Selecting Windows SDK version 10.0.20348.0 to target Windows 10.0.19044. [cmake] -- The C compiler identification is MSVC 19.29.30145.0 [cmake] -- The CXX compiler identification is MSVC 19.29.30145.0 ~中略~ [build] CachingEndpointOnlyCallbackProvider.cpp [build] CallbackProvider.cpp [build] DefaultCallbackProvider.cpp [build] DefaultDeviceInfoProvider.cpp [build] GetTime.cpp [build] KinesisVideoProducer.cpp [build] C:\work\Source\Repos\src\KinesisVideoProducerMetrics.h(63,31): warning C4244: 'return': 'const DOUBLE' から 'uint64_t' への変換です。データが失われる可能性があります。 [C:\work\Source\Repos\build\KinesisVideoProducer.vcxproj] [build] KinesisVideoStream.cpp [build] C:\work\Source\Repos\src\KinesisVideoProducerMetrics.h(63,31): warning C4244: 'return': 'const DOUBLE' から 'uint64_t' への変換です。データが失われる可能性があります。 [C:\work\Source\Repos\build\KinesisVideoProducer.vcxproj] [build] StreamDefinition.cpp [build] StreamTags.cpp [build] PutFrameHelper.cpp [build] C:\work\Source\Repos\src\KinesisVideoProducerMetrics.h(63,31): warning C4244: 'return': 'const DOUBLE' から 'uint64_t' への変換です。データが失われる可能性があります。 [C:\work\Source\Repos\build\KinesisVideoProducer.vcxproj] [build] IotCertCredentialProvider.cpp [build] RotatingCredentialProvider.cpp [build] コードを生成中... [build] KinesisVideoProducer.vcxproj -> C:\work\Source\Repos\build\Debug\KinesisVideoProducer.lib [build] Building Custom Rule C:/work/Source/Repos/CMakeLists.txt [build] Build finished with exit code 0 |
実行ファイルなどは、out\build\x64-Debug ディレクトリに入ります。
動作確認はこちらを参照ください。
Path などは適宜変更してください。
Visual Studio 2022 Community エディションにしても、VSCode にしても、無償でこれだけできるってスゴイ時代になったもんだ。