Golang は、主に Web アプリケーションの開発に使用されるオープンソース プログラミング言語です。他のプログラミング言語と比較して、Golang は効率が高く、構文が便利です。 Golang では、ネイティブ ライブラリを使用して、オペレーティング システムの基盤となるリソースに簡単にアクセスできます。この記事では、プロジェクトのニーズをよりよく実現するために、Golang でローカル ライブラリを構築する方法を紹介します。
ローカル ライブラリの構築を開始する前に、プロジェクト要件を明確にする必要があります。考慮する必要があるものには、ローカル ライブラリの種類、機能、実装方法などが含まれますが、これらに限定されません。プロジェクトの要件を正確に理解することによってのみ、ローカル ライブラリをより適切に構築できるようになります。
まず、C コードを作成する必要があります。 Golang は、C コードに簡単に埋め込むことができる特別な構文 C
を提供します。以下にサンプル コードを示します。
#include <stdio.h> #include <stdlib.h> void hello() { printf("Hello world!\n"); } int add(int x, int y) { return x + y; }
上記のコードは、hello()
と add()
という 2 つの関数を定義します。このうち、hello()
関数は「Hello world!」という文字列を出力し、add()
関数は 2 つの入力パラメータの合計を返す加算関数です。
次に、Go コードを作成し、C コードで関数を呼び出す必要があります。まず、C
言語パッケージを Go コードにインポートし、次に //go
ディレクティブを使用して C コードを導入する必要があります。以下にサンプル コードを示します。
package main // #cgo CFLAGS: -I. // #cgo LDFLAGS: -L. -lhello // #include "hello.h" import "C" func main() { C.hello() sum := C.add(1, 2) fmt.Println(sum) }
上記のコードでは、//go
命令を使用して C コードを導入しています。各命令は //go
で始まり、その後に生の C コードが続きます。また、ディレクティブで CFLAGS パラメーターと LDFLAGS パラメーターを指定する必要もあります。これらは、それぞれコンパイル中とリンク中に使用されるオプションを表します。ここでは、現在のディレクトリ (ヘッダー ファイルの場所を示す) として CFLAGS を指定し、現在のディレクトリとライブラリ ファイルの名前として LDFLAGS を指定します。
Go コードでは、C 関数を直接呼び出すことができます。ここでは、C.hello()
を使用して C コード内の hello()
関数を呼び出し、次に C.add()
を使用してC コード の加算関数。 C 関数をインポートするには、最初に C 言語パッケージを宣言する必要があることに注意してください。
最後に、C コードをネイティブ ライブラリにコンパイルする必要があります。 Linux では、gcc コマンドを使用して C コードをコンパイルできます。
gcc -shared -o libhello.so hello.c
上記のコマンドは、hello.c
をコンパイルし、共有ライブラリ ファイル libhello.so## としてリンクします。 #。
-shared オプションを使用してコンパイル モードを指定し、
-o オプションを使用して出力ファイル名を指定する必要があります。
go run main.go
Hello world! 3
以上がGolang でローカル ライブラリを構築する方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。