init: v1.0.0

This commit is contained in:
yaole
2026-05-27 23:03:00 +08:00
commit 8d97f750eb
466 changed files with 80067 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# 简介
输出gcl中的功能为C库
步骤:
- lib.go中编写要输出的函数:
```
//export Sm3
func Sm3(in []byte, out []byte) {
d := sm3.Sum(in)
copy(out, d[:])
}
```
- 生成go导出的C库(c-archive)
```
go build -buildmode=c-archive -o libgcl_go.a lib.go
```
- lib.c中编写C包装代码
```
int sm3(void *data, int dataLen, void *digest){
// input check, omit
GoSlice in = {
data, dataLen, dataLen
};
GoSlice out = {
digest, 32, 32
};
Sm3(in,out);
return 0;
}
```
- gcc编译gcl.c为动态库
```
gcc -shared -o libgcl.dylib -L. -lgcl_go gcl.c
```