Linux环境下GnuCOBOL(VS中)COPY语句使用报错求助
解决GnuCOBOL中COPY语句报错的问题
错误原因
- COPY文件格式违规:COBOL固定格式要求列7为指示符专用列(仅允许
*注释、-续行等特殊标识,或留空),你的laCopy第一行内容直接占用了列7位置,触发Invalid indicator '' at column 7错误。 - COPY内容冗余:COPY语句插入在主程序的
WORKING-STORAGE SECTION下,无需包含IDENTIFICATION DIVISION、PROCEDURE DIVISION等主程序已有的段,冗余内容会导致语法冲突。 - 变量名不匹配:主程序使用
w-user-entry变量,但COPY文件定义的是w-entreeUser,会导致编译时变量未定义错误。
修正步骤
1. 重写COPY文件laCopy
仅保留数据定义部分,严格遵循COBOL固定格式(内容从列8开始,列7留空):
01 variable. 05 w-user-entry PIC X(100).
2. 确认COPY文件路径
- 若
laCopy与主程序在同一目录,编译无需额外参数; - 若在其他目录,编译时用
-I指定路径,示例:cobc -x -I./copy-directory main.cbl
3. 编译主程序
主程序代码无需修改,执行编译命令:
cobc -x main.cbl
验证
编译通过后运行生成的可执行文件,即可正常接收输入并输出内容。
内容的提问来源于stack exchange,提问作者Nolween_deadra
相关产品推荐
相关产品推荐

