You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go共享库无法重载至最新版本的问题求助

Go共享库无法重载至最新版本的问题求助

各位Go开发的大佬们好!最近在做共享库开发的时候卡壳好几天了,实在没辙来求助大家😭。

情况是这样的:我写了一个Go的共享库,代码如下:

package main

/*
#include <stdlib.h>
#include <stdio.h>
*/
import "C"
import (
    "fmt"
)

func init() {
    fmt.Printf("[PLUGIN] Loaded go plugin")
}

func GetMessage() *C.char {
    msg := fmt.Sprintf("Hello from go plugin v1!")
    return C.CString(msg)
}

func main() {}

然后我用下面的bash脚本构建这个共享库(原脚本没写完,我补充了完整的构建命令):

#!/bin/bash
go build -buildmode=c-shared -o plugin.so plugin.go

问题来了:每次我修改GetMessage里的内容(比如把v1改成v2),重新运行脚本生成新的plugin.so之后,在调用这个共享库的程序里重载它,输出的却还是旧版本的消息!我试过手动删除旧的so文件再构建,也试过重启调用的主程序,但偶尔还是会出现加载不到最新版本的情况。

有没有大佬遇到过类似的问题?或者能指点下我哪里可能没做对吗?比如Go构建共享库的时候有没有什么缓存机制没清?还是重载共享库的时候有什么需要注意的点?

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 12:48:07