C 코드가 포함된 패키지를 사용하여 Golang 프로젝트를 올바르게 컴파일하는 방법

WBOY
풀어 주다: 2024-02-06 10:24:03
앞으로
958명이 탐색했습니다.

如何使用包含 C 代码的包正确编译 Golang 项目

질문 내용

Golang으로 프로젝트를 작성하기 시작했는데 바로 문제가 생겼습니다. 내 코드에서 하드웨어에 연결해야 하며 드라이버와 공급업체에서 제공한 Golang 래퍼가 있습니다. 래퍼 연결에 대한 설명에서는 코드를 프로젝트의 src 디렉터리에 배치해야 한다고 나와 있습니다. (저는 이러한 디렉터리를 사용하지 않지만 패키지 이름별로 파일을 ./internal/fptr10 디렉터리와 내 main 디렉터리에 넣습니다. 가서 성공적으로 가져왔습니다.) IDE GoLand에서 이 패키지의 메서드를 보았지만 프로젝트를 컴파일하려고 할 때(드라이버 인스턴스를 생성해야 하는 첫 번째 함수인 New()를 호출함) - fptr10 오류가 발생합니다. New()가 정의되지 않았습니다. 래퍼 디렉터리에 C로 작성된 두 개의 헤더 파일이 있고 여기에 문제가 있다는 것을 알고 있지만 올바르게 컴파일하는 방법을 이해할 수 없습니다.

전체 프로젝트와 라이브러리 자체는 https://github.com/Natrix31/KKTWatcher에서 확인할 수 있습니다. 추신: 저는 Windows에서 일합니다

go build 및 go install을 사용하여 IDE와 명령줄에서 프로젝트 컴파일을 시도했습니다. 그러나 결과는 같습니다. 프로그램이 컴파일에 실패하고 오류가 발생합니다: New() undefine


정답


이 경우 c 코드를 go 모듈에 넣을 수 있습니다. 플랫폼에 c 컴파일러가 설치되어 있는지 확인하고 다음에 대한 서문 주석을 사용하세요. 인용.

main.go

으아악

calc.c

으아악

calc.h

으아악

go에는 기본적으로 cgo가 활성화되어 있으므로 그냥 빌드하세요.

으아악

위 내용은 C 코드가 포함된 패키지를 사용하여 Golang 프로젝트를 올바르게 컴파일하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!