>  기사  >  백엔드 개발  >  GCCGO를 사용하여 Go 기능을 기존 C 프로젝트에 통합하는 방법은 무엇입니까?

GCCGO를 사용하여 Go 기능을 기존 C 프로젝트에 통합하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-26 20:36:03469검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.