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

使用GM2编译Modula-2 Hello World遇_M2_Hello_init未定义引用错误求助

GM2编译ISO Modula-2代码时出现undefined reference to _M2_Hello_init/_M2_Hello_finish错误

解决方法

1. 安装对应版本的GM2运行时库

Ubuntu环境下,先确保已安装适配gm2 11.4.0的标准库:

sudo apt install gm2-11-libs

2. 修改编译命令,显式链接ISO标准库

原编译命令缺少ISO Modula-2模式下的运行时库链接参数,将命令改为:

gm2 -fiso hello.mod -lm2iso

也可以分两步完成编译与链接:

# 编译生成目标文件
gm2 -c -fiso hello.mod -o hello.o
# 链接生成可执行文件
gm2 hello.o -lm2iso -o hello

原因说明

当使用-fiso开关启用ISO Modula-2方言时,GM2编译器不会自动链接对应的ISO标准运行时库。这些库包含了模块初始化(_M2_*_init)和清理(_M2_*_finish)相关的符号,手动添加-lm2iso参数可以让链接器找到这些缺失的符号,完成编译流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 06:07:06