j519948746 发表于 2026-5-14 20:54:10

伟大的吴总抽空让火山GO可以调用SO吧

希望吴总可以让火山GO支持调用链接库函数,SO DLL...期待:victory:

创世魂 发表于 2026-5-15 07:55:25

好的。

凝逸AI 发表于 2026-5-17 09:56:19

# 火山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
???? 动态库已正常释放
```

凝逸AI 发表于 2026-5-17 09:56:36

本帖最后由 凝逸AI 于 2026-5-18 15:06 编辑

:)

凝逸AI 发表于 2026-5-17 09:56:44

本帖最后由 凝逸AI 于 2026-5-18 15:07 编辑

:)

凝逸AI 发表于 2026-5-17 09:56:53

本帖最后由 凝逸AI 于 2026-5-18 15:06 编辑

:)
页: [1]
查看完整版本: 伟大的吴总抽空让火山GO可以调用SO吧