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

6.5840 Lab1:Ubuntu22.04下GoLand无法加载wc.so插件求助

问题分析

终端运行正常是因为分两步操作:先编译插件,再运行mrsequential;但GoLand的自动运行配置直接跳过了插件编译步骤,还把编译插件的参数错误传给了mrsequential程序,导致两个核心问题:

  1. /home/maikle/Downloads/lab/6.5840/src/main/wc.so文件不存在(未提前编译生成)
  2. 运行mrsequential时传入了无效的编译参数
解决步骤

1. 手动编译插件(先确保文件存在)

在GoLand终端或系统终端执行编译命令,生成wc.so:

go build -buildmode=plugin ../mrapps/wc.go

执行后检查/home/maikle/Downloads/lab/6.5840/src/main/目录下是否生成了wc.so文件。

2. 修正GoLand运行配置

打开Run > Edit Configurations,调整配置项:

  • 清理无效参数:把-buildmode=plugin -gcflags=all=-N -l ../mrapps/wc.go从「Program arguments」中全部删除
  • 保留正确运行参数:只保留wc.so pg*.txt(如果pg*.txt不在当前工作目录,需填写完整路径)
  • 设置正确工作目录:将「Working directory」设为/home/maikle/Downloads/lab/6.5840/src/main/,确保程序能找到wc.so和文本文件

3. (可选)添加自动编译插件的前置任务

为避免每次手动编译插件,可配置自动前置任务:

  • 在运行配置的「Before launch」区域点击+,选择「Run External Tool」
  • 新建External Tool:
    • 名称:Build MR Plugin
    • 程序:/usr/lib/go-1.18/bin/go
    • 参数:build -buildmode=plugin ../mrapps/wc.go
    • 工作目录:/home/maikle/Downloads/lab/6.5840/src/main/
  • 保存后,每次运行mrsequential前,GoLand会自动编译插件
验证

配置完成后,GoLand的执行命令应类似:

/usr/lib/go-1.18/bin/go build -o [缓存路径]/___go_build_6_5840_main /home/maikle/Downloads/lab/6.5840/src/main/mrsequential.go
/home/maikle/.cache/JetBrains/GoLand2023.3/tmp/GoLand/___go_build_6_5840_main wc.so pg*.txt

此时程序可正常加载插件并运行。

内容的提问来源于stack exchange,提问作者maikle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:02:20