|
|
# 火山GO 纯中文代码示例
## Linux 环境调用 .so 动态库(原生内置命令,无英文)
### 前置准备
1. 把编译好的 `libtest.so` 放到程序同级目录
2. 运行终端先执行:`export LD_LIBRARY_PATH=./`
---
## 完整中文源码
```火山GO
// 火山GO 中文调用Linux so动态库示例
程序启动()
定义变量 库句柄 = 0
定义变量 错误提示 = ""
定义变量 函数指针 = 0
// 1. 加载so动态库
库句柄,错误提示 = 加载Linux动态库("./libtest.so")
如果 错误提示 不为空
弹窗提示("加载动态库失败:" + 错误提示)
结束程序()
结束如果
打印文本("✅ 成功载入Linux .so动态库")
// 2. 获取库内函数地址(函数名必须和C++导出名一致)
函数指针,错误提示 = 获取Linux库函数(库句柄,"求和函数")
如果 错误提示 不为空
弹窗提示("获取函数失败:" + 错误提示)
关闭Linux动态库(库句柄)
结束程序()
结束如果
打印文本("✅ 成功绑定调用函数")
// 3. 调用无浮点整数函数
定义变量 返回数值 = 调用Linux整数函数(函数指针,66,88)
打印文本("66 + 88 = " + 数字转文本(返回数值))
// 4. 释放资源
关闭Linux动态库(库句柄)
打印文本("???? 动态库已正常释放")
结束程序
```
---
## 配套C++写的so源码(用来测试)
```cpp
#include <cstdio>
extern "C"
{
int 求和函数(int a,int b)
{
return a+b;
}
}
```
### Linux编译命令
```bash
g++ -fPIC -shared -o libtest.so test.cpp
```
---
## 内置可用火山GO Linux专属命令
1. `加载Linux动态库(路径)` → 返回句柄+错误信息
2. `获取Linux库函数(句柄,函数名)` → 获取调用地址
3. `调用Linux整数函数(指针,参数1,参数2...)` → 调用整型参数函数
4. `关闭Linux动态库(句柄)` → 释放库文件
---
## 运行效果
```
✅ 成功载入Linux .so动态库
✅ 成功绑定调用函数
66 + 88 = 154
???? 动态库已正常释放
``` |
|