Golang でプロジェクトを書き始めたのですが、すぐに問題に遭遇しました。コードからハードウェアに接続する必要があり、ドライバーとベンダーが提供する Golang ラッパーが必要です。ラッパー接続の説明には、コードをプロジェクトの src ディレクトリに配置する必要があると記載されています (私はそのようなディレクトリは使用しませんが、ファイルをパッケージ名でディレクトリ ./internal/fptr10 と main に配置します)。正常にインポートされました)。 IDE GoLand でこのパッケージのメソッドを確認しましたが、プロジェクトをコンパイルしようとすると (ドライバー インスタンスを作成する最初の関数 New() を呼び出します)、エラー fptr10 が発生します。 New() が定義されていません。ラッパー ディレクトリに C で書かれた 2 つのヘッダー ファイルがあり、それらに何か問題があることはわかっていますが、正しくコンパイルする方法がわかりません。
プロジェクト全体とライブラリ自体は、https://github.com/Natrix31/KKTWatcher で見つけることができます。 追伸: 私は Windows
で作業しています。go build と go install を使用して、IDE とコマンドラインからプロジェクトをコンパイルしてみました しかし、結果は同じです。プログラムはコンパイルに失敗し、次のエラーが表示されます: New() unknown
この場合、C コードを go モジュールに入れて、単に Make することができます。プラットフォームに C コンパイラがインストールされていることを確認し、プリアンブルのコメントを使用してそれを参照してください。
main.go
calc.c
:
calc.h
:
go はデフォルトで cgo を有効にするので、それをビルドするだけです:
リーリー以上がC コードを含むパッケージを使用して Golang プロジェクトを正しくコンパイルする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。