Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengintegrasikan Fungsi Go ke dalam Projek C Sedia Ada menggunakan GCCGO?

Bagaimana untuk Mengintegrasikan Fungsi Go ke dalam Projek C Sedia Ada menggunakan GCCGO?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 20:36:03469semak imbas

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

Menggunakan Go dalam Projek C Sedia Ada

Anda berhasrat untuk menyepadukan fungsi Go ke dalam program C dengan mencipta fail objek daripada sumber Go fail dan masukkannya dalam projek C sedia ada. Walau bagaimanapun, anda menghadapi ralat pemautan walaupun menggunakan GCCGO.

Untuk menangani isu ini, seperti yang dicadangkan oleh penyelesaiannya, pertimbangkan pendekatan berikut:

Untuk Go 1.5 dan lebih baru, gunakan bendera -buildmode untuk cipta perpustakaan serasi C:

  • Pustaka statik:

    go build -buildmode c-archive -o mygopkg.a
  • Pustaka dikongsi:

    go build -buildmode c-shared -o mygopkg.so

Setelah anda mempunyai perpustakaan serasi C, anda boleh menyepadukannya ke dalam projek C anda:

  • Statik perpustakaan:

    gcc -o main _main.c mygopkg.a -lpthread
  • Pustaka kongsi:

    export LD_RUN_PATH=$(pwd)
    gcc -o main _main.c mygopkg.so -lpthread

Perhatikan bahawa LD_RUN_PATH memastikan bahawa penghubung mencari perpustakaan kongsi dalam direktori semasa.

Menggunakan pendekatan ini, anda boleh mencipta perpustakaan serasi C dalam Go dan menyepadukan dengan lancar ke dalam projek C sedia ada, membolehkan anda memanggil fungsi Go dari dalam program C anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengintegrasikan Fungsi Go ke dalam Projek C Sedia Ada menggunakan GCCGO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn