GCCGO を使用して Go 関数を既存の C プロジェクトに統合するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-26 20:36:03
オリジナル
480 人が閲覧しました

How to Integrate Go Functions into an Existing C Project using GCCGO?

既存の C プロジェクトで Go を使用する

Go ソースからオブジェクト ファイルを作成することで、Go 関数を C プログラムに統合することを目的としています。ファイルを作成し、それを既存の C プロジェクトに含めます。ただし、GCCGO を使用しているにもかかわらず、リンク エラーが発生します。

解決策で提案されているように、この問題に対処するには、次のアプローチを検討してください。

Go 1.5 以降の場合は、-buildmode フラグを使用して、 C 互換ライブラリの作成:

  • 静的ライブラリ:

    go build -buildmode c-archive -o mygopkg.a
    ログイン後にコピー
  • 共有ライブラリ:

    go build -buildmode c-shared -o mygopkg.so
    ログイン後にコピー

C 互換ライブラリを入手したら、それを C プロジェクトに統合できます:

  • 静的ライブラリ:

    gcc -o main _main.c mygopkg.a -lpthread
    ログイン後にコピー
  • 共有ライブラリ:

    export LD_RUN_PATH=$(pwd)
    gcc -o main _main.c mygopkg.so -lpthread
    ログイン後にコピー

LD_RUN_PATH により、リンカーは現在のディレクトリで共有ライブラリを見つけます。

このアプローチを使用すると、Go で C 互換ライブラリを作成し、それらを既存の C プロジェクトにシームレスに統合して、C プログラム内から Go 関数を呼び出すことができます。

以上がGCCGO を使用して Go 関数を既存の C プロジェクトに統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!