在 Ubuntu 20.04 上安装 GnuCOBOL 3.2 可以通过以下步骤完成:
方法 1:通过 APT 安装(推荐)
-
更新软件包列表
确保系统是最新的:bash
-
sudo apt update sudo apt upgrade
-
安装 GnuCOBOL
Ubuntu 20.04 的官方仓库可能不直接提供 GnuCOBOL 3.2,但你可以尝试安装gnucobol
或open-cobol
(旧版本):bash
sudo apt install gnucobol
如果 gnucobol
不可用,可以尝试:
bash
-
sudo apt install open-cobol
这通常会安装较旧的版本(如 2.x),但可以满足基本需求18。
-
验证安装
检查安装是否成功:bash
-
cobc --version
方法 2:从源代码编译安装(适用于最新版本)
如果 APT 提供的版本较旧,可以手动编译安装 GnuCOBOL 3.2:
-
安装依赖项
bash
-
sudo apt install build-essential libgmp-dev libdb-dev libncurses5-dev autoconf automake
-
下载 GnuCOBOL 源代码
从 SourceForge 或 GnuCOBOL 官方仓库 下载最新版本:bash
-
wget https://sourceforge.net/projects/open-cobol/files/gnucobol/3.2/gnucobol-3.2.tar.gz tar -xvf gnucobol-3.2.tar.gz cd gnucobol-3.2
-
编译并安装
bash
-
./configure make sudo make install sudo ldconfig # 更新动态链接库缓存
-
验证安装
bash
-
cobc --version
方法 3:通过 .deb
包安装
如果不想编译,可以尝试从 Debian/Ubuntu 仓库下载 .deb
包手动安装:
-
访问 Ubuntu Packages 或 Debian Packages 查找
libcob4-dev
或gnucobol
的.deb
文件36。
常见问题
-
缺少
ld
错误:如果编译时提示ld
不可用,确保安装了binutils
:bash
-
sudo apt install binutils
24
-
运行时依赖问题:如果运行程序时提示缺少库,可以安装
libcob4
:bash
-
sudo apt install libcob4
总结
-
推荐优先使用
apt install gnucobol
安装(如果可用)。 -
如果需要最新版本,建议从源代码编译安装。
-
如果遇到依赖问题,确保安装了所有必要的开发库。
遇到的问题 防止误删
hx2@Ubantu:~/桌面/GnuCOBOL/code$ ls
bank_system bank_system.c bank_system.cbl bank_system.c.h bank_system.c.l.h bank_system.i fuli fuli.cbl hello hello.cbl
hx2@Ubantu:~/桌面/GnuCOBOL/code$
hx2@Ubantu:~/桌面/GnuCOBOL/code$
hx2@Ubantu:~/桌面/GnuCOBOL/code$ ls bank_system* | grep -v 'bank_system.cbl$' | xargs rm -v
已删除'bank_system'
已删除'bank_system.c'
已删除'bank_system.c.h'
已删除'bank_system.c.l.h'
已删除'bank_system.i'
hx2@Ubantu:~/桌面/GnuCOBOL/code$
编译时显示所有警告:
cobc -x -Wall bank_system.cbl -o bank_system
gdb调试信息
cobc -x -g bank_system.cbl -o bank_system # 生成调试版
gdb ./bank_system # 使用GDB调试
cobc -x testbank.cbl -o testbank
测试一个简单的代码
hx2@Ubantu:~/桌面/GnuCOBOL/code$ cobc -x 打印.cbl -o 打印
代码
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. SIMPLE-MENU.
000300 AUTHOR. YOUR-NAME.
000400 DATE-WRITTEN.2024-08-01.
000500*
000600 DATA DIVISION.
000700 WORKING-STORAGE SECTION.
000800 01 USER-CHOICE PIC 9.
000900*
001000 PROCEDURE DIVISION.
001100 MAIN-LOGIC.
001200 PERFORM DISPLAY-MENU.
001300 PERFORM GET-CHOICE.
001400 PERFORM PROCESS-CHOICE.
001500 STOP RUN.
001600*
001700 DISPLAY-MENU.
001800 DISPLAY " ".
001900 DISPLAY "=== 简单银行系统菜单 ===".
002000 DISPLAY "1. 查询余额".
002100 DISPLAY "2. 存款".
002200 DISPLAY "3. 取款".
002300 DISPLAY "4. 转账".
002400 DISPLAY "5. 退出".
002500 DISPLAY " ".
002600 DISPLAY "请输入选择 (1-5): ".
002700*
002800 GET-CHOICE.
002900 ACCEPT USER-CHOICE.
003000*
003100 PROCESS-CHOICE.
003200 EVALUATE USER-CHOICE
003300 WHEN 1
003400 DISPLAY "您选择了: 1 - 查询余额"
003500 DISPLAY "执行查询操作..."
003600 WHEN 2
003700 DISPLAY "您选择了: 2 - 存款"
003800 DISPLAY "执行存款操作..."
003900 WHEN 3
004000 DISPLAY "您选择了: 3 - 取款"
004100 DISPLAY "执行取款操作..."
004200 WHEN 4
004300 DISPLAY "您选择了: 4 - 转账"
004400 DISPLAY "执行转账操作..."
004500 WHEN 5
004600 DISPLAY "您选择了: 5 - 退出"
004700 DISPLAY "系统即将退出..."
004800 WHEN OTHER
004900 DISPLAY "无效输入! 请输入1-5的数字"
005000 END-EVALUATE.
005100*
005200 IF USER-CHOICE NOT = 5
005300 PERFORM MAIN-LOGIC
005400 END-IF.