当前位置: 首页 > article >正文

QuickBASIC QB64 支持 64 位系统和跨平台Linux/MAC OS

QuickBASIC 的现代继任者 QB64 已发展成为一个功能强大的开源项目,支持 64 位系统和跨平台开发。以下是详细介绍:

项目首页 - QB64pe:The QB64 Phoenix Edition Repository - GitCode
https://gitcode.com/gh_mirrors/qb/QB64pe

1. QB64 概述

  • 官网:qb64.org
  • 开源许可:GPLv3
  • 特点
    • 兼容 QuickBASIC 4.5 语法,同时支持现代扩展(如面向对象、GUI)。
    • 编译为原生 64 位可执行文件,性能接近 C 语言。
    • 内置图形库支持高分辨率显示和硬件加速。

2. 开源与跨平台支持

  • 开源代码:在 GitHub 上公开(github.com/QB64-Phoenix-Edition/QB64pe)。
  • 跨平台支持
    • Windows(32/64 位)
    • Linux(通过 Wine 或原生编译)
    • macOS
    • Raspberry Pi

3. 在 Linux 上运行 QB64

方法一:使用 Wine 运行 Windows 版本
  1. 安装 Wine:

    bash

    sudo apt-get install wine
    
  2. 下载 QB64 Windows 安装包并运行:

    bash

    wine QB64-win64-installer.exe
    
  3. 通过 Wine 启动 QB64 编辑器。
方法二:编译原生 Linux 版本
  1. 安装依赖:

    bash

    sudo apt-get install build-essential libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
    
  2. 从源码编译:

    bash

    git clone https://github.com/QB64-Phoenix-Edition/QB64pe.git
    cd QB64pe
    make linux
    
  3. 运行生成的 qb64 可执行文件。

4. Linux 下的 GUI 编程示例

QB64 的 GUI 功能通过内置的 SDL2 库实现,支持窗口、按钮、文本框等控件。以下是一个简单示例:

basic

' Linux 下的 QB64 GUI 示例
SCREEN _NEWIMAGE(800, 600, 32)' 创建窗口
DIM window AS _WINDOW
window = _CREATEWINDOW("QB64 GUI 示例", 100, 100, 600, 400)' 创建按钮
DIM button AS _HANDLE
button = _CREATEBUTTON("点击我", 250, 180, 100, 30, window)' 创建文本框
DIM textbox AS _HANDLE
textbox = _CREATETEXTBOX("输入文本...", 200, 250, 200, 30, window)' 消息循环
DOevent = _GETEVENTSELECT CASE eventCASE _BUTTONPRESSEDIF _HANDLE = button THENPRINT "按钮被点击!"_SETTEXT textbox, "按钮已点击"END IFCASE _WINDOWCLOSEIF _HANDLE = window THEN EXIT DOEND SELECT_LIMIT 60
LOOP_CLOSEWINDOW window
END

5. 注意事项

  • 性能:原生 Linux 版本通常比 Wine 版本更快。
  • 依赖库:确保系统已安装 SDL2 相关库(如 libsdl2-dev)。
  • 兼容性:部分 Windows 特有的 QB64 扩展(如 DirectX)可能在 Linux 上受限。

6. 资源与社区

  • 官方论坛:forum.qb64.org
  • 文档:qb64.com/docs
  • 教程:YouTube 上有大量 QB64 编程教程。

总结

QB64 是 QuickBASIC 的优秀开源继任者,完全支持 Linux 平台。你可以通过 Wine 运行 Windows 版本,或编译原生 Linux 版本,实现跨平台的 64 位 GUI 编程。其语法保持了 QuickBASIC 的简洁性,同时融入了现代编程特性,适合新手和怀旧开发者使用。

http://www.lryc.cn/news/2396939.html

相关文章:

  • ElasticSearch迁移至openGauss
  • 【C语言极简自学笔记】项目开发——扫雷游戏
  • Global Security Markets 第5章知识点总结
  • 电子电路:4017计数器工作原理解析
  • Vim 中设置插入模式下输入中文
  • GitHub 趋势日报 (2025年05月31日)
  • Maven概述,搭建,使用
  • 基于大模型的数据库MCP Server设计与实现
  • 【前端】macOS 的 Gatekeeper 安全机制阻止你加载 bcrypt_lib.node 文件 如何解决
  • Unity 环境搭建
  • 【入门】【练9.3】 加四密码
  • 使用 SASS 与 CSS Grid 实现鼠标悬停动态布局变换效果
  • Node.js 全栈开发方向常见面试题
  • Spring如何实现组件扫描与@Component注解原理
  • 历年四川大学计算机保研上机真题
  • gcc符号表生成机制
  • 达梦数据库 Windows 系统安装教程
  • unix/linux source 命令,其基本概念、定义、性质、定理
  • 【Java EE初阶】计算机是如何⼯作的
  • RAG理论基础总结
  • 列表推导式(Python)
  • 嵌入式RTC工作原理及应用场景
  • 一天搞懂深度学习--李宏毅教程笔记
  • Go语言常见接口设计技巧-《Go语言实战指南》
  • python打卡训练营打卡记录day43
  • Camera相机人脸识别系列专题分析之十一:人脸特征检测FFD算法之低功耗libvega_face.so人脸属性(年龄,性别,肤色,微笑,种族等)检测流程详解
  • 解决:输入SSH后,仍无法通过网址登录以及紧接着的新问题Permission denied(publickey,password).
  • 【QT控件】QWidget 常用核心属性介绍 -- 万字详解
  • uniapp-商城-77-shop(8.2-商品列表,地址信息添加,级联选择器picker)
  • HTTPS加密通信详解及在Spring Boot中的实现