Visual Studioにおける非Windows環境向けクロスコンパイル

Visual Studioにおけるクロスコンパイル機能の拡張

wolfSSLの最近のリリースにより、特にWindows開発環境から非Windows OSをターゲットとする場合のVisual StudioでのwolfSSLクロスコンパイル機能が大幅に改善しました。(PR #7884)
クロスコンパイルをよりスムーズかつ効率的にする、新しいビルドオプションを提供しています。

WOLFSSL_NOT_WINDOWS_APIのご紹介

このリリースでの主要な追加機能は、新しいマクロ WOLFSSL_NOT_WINDOWS_API です。
これは特に以下のシナリオ向けに設計されています。

  • WindowsのVisual Studioでコンパイルする
  • ターゲットOSはWindowsではない
  • コンパイル中にWindows APIを使用すべきではない

WOLFSSL_NOT_WINDOWS_API が定義されると、関連するマクロ USE_WINDOWS_API は定義されなくなります。これにより、Windows API関数が利用できない前提でwolfSSLがビルドされることを保証します。
開発者はVisual Studioを主要な開発環境として使用しながら、Linuxや組込みシステムなどのプラットフォーム向けにクロスコンパイルできます。

重要なポイント

組込み機器やIoT機器に関連する分野では、強力なデバッグおよび開発ツールを使用するためにVisual Studioを使用することが一般的です。しかし、最終的なデプロイ先は非Windows OSであることも少なくありません。このアップデート以前は、Visual StudioビルドはしばしばWindows API関数が利用可能であることを前提としており、それらをサポートしないプラットフォームをターゲットにする際に互換性の問題が生じていました。

WOLFSSL_NOT_WINDOWS_API を使用することで、このようなことがより簡単になります。

  • Windowsで組込みLinuxや他のPOSIXベースの環境向けにwolfSSLをコンパイルする
  • ビルド環境間の切り替えなしに、単一の開発ワークフローを維持する
  • 異なるプラットフォーム間で一貫した動作を確保する

WOLFSSL_NOT_WINDOWS_APIを使用する方法

この新しいマクロを活用するには、以下の手順に従ってください。

a) ビルド設定でCMakeを使用している場合

Visual Studioのプロジェクト設定で、以下に移動します。
Configuration Properties → C/C++ → Preprocessor → Preprocessor Definitions

以下を追記して、このマクロを定義します。

add_definitions(-DWOLFSSL_NOT_WINDOWS_API)

b) コード内で手動定義する場合(推奨していません)

ソースファイルの先頭でマクロを定義することもできます。
しかし、可能であれば a) の方法を選択してください。

#define WOLFSSL_NOT_WINDOWS_API
#include <...>
#include <...>

使用例:Visual StudioにおけるLinux向けのwolfSSLビルド

Visual StudioでWindows API依存関係を避けながら、Linuxベースのターゲット向けにwolfSSLをコンパイルする場合の手順を示します。

  1. ツールチェーンのセットアップ
    MinGW-w64やWSL(Linuxクロスコンパイラ付き)などの、Linux向けクロスコンパイルツールチェーンをインストールします。
  2. Visual Studioプロジェクト設定の更新
    プリプロセッサ定義で WOLFSSL_NOT_WINDOWS_API を定義します。
    インクルードパスが正しい非Windowsヘッダーを指すようにします。
  3. コンパイルと検証
    Visual Studioでプロジェクトをビルドします。
    生成されたバイナリをターゲットのLinuxシステムでテストして、正しく動作することを確認します。

将来の拡張と次のステップ

今後も、Visual Studioを使用してwolfSSLを容易にクロスコンパイルするためのさらなる改善を計画しています。

  • 自動クロスプラットフォームビルド用のCMakeツールチェーンとのより良い統合
  • Visual Studioベースのクロスコンパイル用の拡張CI/CDサポート
  • ビルドプロセスをさらに効率化するための最適化

まとめ

WOLFSSL_NOT_WINDOWS_API の導入により、Visual Studioを使用したクロスコンパイルがさらに簡単になりました。
非Windowsプラットフォームにデプロイする、組込みおよびLinux開発者のワークフローがよりシンプルになります。

これからVisual StudioでwolfSSLを試してみたい方は、ぜひこちらの投稿もご覧ください。

英語版ウェビナーのアーカイブも公開しています。

ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。
原文:https://www.wolfssl.com/visual-studio-support-for-non-windows-os-in-wolfssl