Go の CGO ディレクティブを使用したサブディレクトリ C ファイルのビルド
CGO を使用した Go のビルド プロセス (C Go) では、C または C ファイルを含めることができます。パッケージのルートにあります。ただし、開発者がサブディレクトリ内に C ファイルを組み込みたい場合があります。この記事では、CGO ディレクティブを使用してこの要件の実現可能性を検討します。
質問:
CGO を使用する場合、サブディレクトリにある C/C ファイルをコンパイル プロセスに含めることはできますか? Go でビルドしますか?
答え:
いいえ、CGO ディレクティブを直接介したものではありません。 CGO を使用した Go ビルドには、パッケージのルートに存在する C/C ファイルのみが含まれます。
回避策:
使用可能な唯一のオプションは、別の Go パッケージを作成することです。サブディレクトリ用。このアプローチには、エクスポートされた Go 関数で必要な機能をラップし、サブディレクトリ パッケージをメイン プロジェクトにインポートすることが含まれます。
制限事項:
C/ のコンパイルには注意することが重要です。 Go の CGO ディレクティブを含む C ファイルは、主に単純なシナリオを対象としています。より複雑な要件の場合は、C/C ソースを個別に構築し、リンク プロセス中に適切な CGO ディレクティブを提供することをお勧めします。 Go ツールチェーンは、C/C コードの包括的なビルド ツールとして機能するように設計されていません。
以上がGo の CGO ディレクティブを使用してサブディレクトリ C ファイルを構築できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。