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