[software development] 值得一试!Deepin系统安装FreeBASIC编程语言及图形化编辑器教程
Tofloor
poster avatar
thinking2019
deepin
2024-07-26 11:54
Author

前言

这篇教程本来是应一个FreeBASIC技术群群主的要求编写的,但是该群里的Deepin爱好者看后推荐我将这篇文章发到Deepin论坛,说也许会有更多的人喜欢。我本人非专业程序员,编程只是我的爱好之一。FreeBASIC我也只是刚开始关注,Deepin论坛里编程高手如云,我这篇教程实属班门弄斧,如有错误也请不吝赐教并给予批评指正。总之一个目的:希望Deepin的软件生态越来越丰富,未来之路越走越好!

好的,废话不多说了,先贴两张我用FreeBASIC编译好的图片,如果你感兴趣,就请继续往下看……

HelloDeepin1.jpg

上图为FreeBASIC编辑器图形化编程界面

HelloDeepin.jpg

上图为我用上面的编辑器编写的最简单的图形界面且编译成功在Deepin系统运行的效果。

《国产Deepin系统安装FreeBASIC语言及Visual FB Editor编辑器教程》

最近几年,国产操作系统发展的越来越好了,其中基于Linux系统开发的Deepin操作系统和麒麟操作系统的进步尤为明显。网上有人说:开发操作系统并不难,难的是软件生态。这话一点儿没错,软件生态的繁荣是决定一个操作系统能否走下去的关键因素之一。长期以来,作为Linux系统下的软件开发工具,C语言和C++是主力,没有之一,但是对于非专业人士来讲,C语言和C++的学习曲线太陡峭了,容易让人半途而废。而最近这些年最流行的Python语言虽然跨平台且学习起来比较容易,但是采用解释方式运行,速度慢是死穴。那么,有没有一种语言可以兼顾速度和开发效率同时又跨平台呢?免费且功能强大的FreeBASIC语言显然非常合适。

什么是FreeBASIC语言?

FreeBASIC是一款免费且开源的跨平台(支持Windows、Linux、DOS、XBOX)编程开发语言,它的出现最早是为了创建一个Microsoft QuickBASIC的免费替代品。随着不断的发展,现在FreeBASIC已经演变成一个支持32位和64位架构,既可以编写控制台,也可以编写图形界面的强大开发工具。另外,FreeBASIC采用编译方式运行,理论上运行速度和C语言或C++接近,远快于Python。
FreeBASIC官网:www.freebasic.net

FreeBASIC语言在Deepin系统上的安装

笔者使用的是Deepin 20.9正式版(V23版该群主按本教程安装编译测试成功,但本人未尝试),因此下面的安装配置均在此系统上进行,其它版本的Deepin系统或者linux系统的安装原理应该大同小异。

安装方法:

1、打开官网下载FreeBASIC原始安装程序。(下图)

图片1.png

2、选择最新版本下载。(下图)

图片2.png

3、点击进入后,根据你的操作系统选择相关的安装包。我使用的是64位的Deepin系统,因此选择“linux-x86_64: FreeBASIC-1.10.1-linux-x86_64.tar.gz | .tar.xz ”通用安装包。如果你的系统是32位的或者想安装32位安装包,请选择“linux-x86: FreeBASIC-1.10.1-linux-x86.tar.gz | .tar.xz ”。(下图)

图片3.png

4、下载的安装包解压缩,进入文件夹会看到以下文件,这里以64位安装包为例。(下图)

图片4.png

5、在该文件夹内鼠标右击进入终端,然后安装相关依赖包。这一步很重要,如果没有依赖包,后面的安装和运行可能会报错。具体代码如下:

sudo apt install gcc g++ libncurses5-dev libtinfo5 libgtk-3-dev libffi-dev libgl1-mesa-dev libx11-dev libxext-dev libxrender-dev libxrandr-dev libxpm-dev

6、在终端内复制粘贴上述代码,然后回车即可。
7、上述安装完成后,在终端内继续执行以下命令:
sh ./install.sh -i ‘ 该命令会安装FreeBASIC
sh ./install.sh -u ‘ 该命令会卸载FreeBASIC
默认安装目录为/usr/local。安装时如果提示权限问题记得加sudo。

整个安装过程很快,根据电脑配置不同也就是几秒到几十秒的时间。安装完成后在该目录或者系统桌面上右击进入终端,输入:fbc --version,回车,你应该会看到如下信息:

图片5.png

当出现上述版本信息时,证明已经安装成功了。
此时可以再输入:which fbc,回车,你会看到软件的安装位置。(下图)

图片6.png

当然,你还可以在终端直接输入:fbc,回车,你会看到一大堆英文版fbc的使用方法,这里不再详述。

Visual FB Editor编辑器简介

FreeBASIC语言虽然功能强大,但由于是免费开源软件且宣传推广不够,因此使用的人不多,它的专属编辑器很少,中文版的更少。官方推荐使用Geany,但是我试用的感觉是太简陋了,似乎是上个世纪的产品,所见即所得的图形界面编程更别想了。Windows系统下目前国内有一定影响力的是勇芳软件团队开发的Visual FreeBasic开发平台,但遗憾的是该平台仅支持Windows系统。随着国产操作系统的普及,FreeBASIC语言迫切需要一款能够支持跨平台的所见即所得的IDE编辑器软件,于是Visual FB Editor进入我们的视野。
Visual FB Editor是由FreeBASIC语言编写的一款跨平台编辑器软件。Visual FreeBasic Editor可以生成在Windows、Linux、Dos、Android下使用的32位及64位绿色免安装程序,语言风格类似VB.NET的Basic语言。Visual FreeBasic Editor使用MyFbFramework框架,MyFbFramework框架是由FreeBASIC编写的公用基本控件库,目前共有83个公用类和控件。语法在本质上类似于编程语言 vb.net, 使用这些类即可快速、轻松地创建各种类型的安全软件产品。

Visual FB Editor编辑器在Deepin系统上的安装

下载地址:
国外Github:https://github.com/XusinboyBekchanov/VisualFBEditor
国内码云Gitee:https://gitee.com/avata/VisualFBEditor

下面我们以最新的Visual FB Editor V1.36中文版为例讲述一下具体的安装过程。

1、下载软件
打开码云Gitee,找到软件的最新版下载(下图)

图片7.png

2、将下载的文件解压缩,进入文件夹后会得到很多文件,如果你喜欢自己研究可以找到“README_CN.md”文件,双击打开,里面是不同系统下具体的安装方法。如果你一看就头大,那就跟着我下面的操作继续进行。
3、无论你是用Windows系统还是Linux系统,无论32位还是64位,编译前都会让你选择使用GTK2还是GTK3进行编译。该如何选择呢?

什么是GTK?

GTK,全称是GIMP Toolkit,是一个开源的图形用户界面(GUI)工具包,用于创建图形用户界面的应用程序。它最初是为了GIMP(一个开源的图像编辑程序)而开发的,但后来发展成为了一个独立的库,可以被其他应用程序使用。GTK是用C语言编写的,但也提供了其他语言的绑定,例如:Python、Perl、C++等。
GTK提供了一系列的控件(如按钮、文本框、标签等)和函数,使得开发者能够创建出具有本地操作系统外观和感觉的应用程序。GTK还支持主题和样式,使得应用程序的外观可以很容易地定制和改变。
GTK广泛应用于多种操作系统,包括Linux、Windows和macOS,为开发者提供了一个跨平台的解决方案,使得他们可以用一套代码在多个操作系统上创建具有一致外观和行为的GUI应用程序。
GTK2发布的年代比较久远了,而GTK3是2011年发布的。本着IT界软件版本号越大,功能越新越强的原则,我选择使用GTK3进行编译。

4、打开刚才解压缩的Visual FB Editor目录,进入src子目录,右击进入终端,输入如下信息:

fbc "VisualFBEditor.bas" -x "../VisualFBEditor64_gtk3" -i "Path_to_VisualFBEditor/MyFbFramework" -d __USE_GTK3__

注意:上述加粗部分要更改为你自己系统中的绝对地址,我这里是/data/home/Thinking/VisualFBEditor/Controls/MyFbFramework,因此正确的命令是:

fbc "VisualFBEditor.bas" -x "../VisualFBEditor64_gtk3" -i "/data/home/Thinking/VisualFBEditor/Controls/MyFbFramework" -d __USE_GTK3__

终端输入上述命令后回车,然后开始编译。注意:编译期间终端屏幕只有光标在换行位置闪动且没有任何其它提示,此时不要认为系统死机了,要耐心等待。根据你电脑配置的不同编译时间可能从几分钟到十几分钟不等,一定要耐心等待!!!

5、上述编译完成后,再进入VisualFBEditor/MyFbFramework/mff文件夹,右击进入终端,输入:

fbc -b "mff.bi" -dll -x "../libmff64_gtk3.so" -d __USE_GTK3__

回车再次进行编译,也是大约持续几分钟的时间。
6、编译成功后,你会发现在VisualFBEditor文件夹根目录下会有“VisualFBEditor64_gtk3”这个文件,双击即可运行。

图片8.png

图片9.png

至此,Visual FB Editor编辑器的编译全部完成。

Visual FB Editor编辑器编译成功后的一些设置

当上述编译成功后,你可以将这个VisualFBEditor64_gtk3文件右键发送至桌面,以后双击即可运行。运行后是这样的界面:

图片10.png

1、编译好的程序刚启动时可能会弹出这样的报错信息:(下图)

图片11.png

大概意思是打开英文语言包出现问题,这个不影响使用,直接点击确定即可进入。
2、英文界面如何变成中文?
进入程序后,可能你看到的满眼英文。此时不要着急,这个编辑器是支持中文的,我们需要设置一下:选择“Service”菜单下的“Options”,在弹出菜单的左侧“General”项目下选择“localization”,然后在右侧的“language”下点击下拉框,选择“简体中文—Chinese”,然后点击“OK”。(下图)

图片12.png

随后会弹出一个窗口,内容是告诉你下次启动软件的时候会改变语言为中文。(下图)

图片13.png

按确定键,再次重启软件就会看到熟悉的中文界面。
3、编译器设置
虽然软件安装好了,但是里面的编译器我们还需要根据自己配置的情况进行设置,否则还是无法完成软件的编译。打开“设置”菜单中的“选项”,选择左侧的“编译器”,然后将默认配置根据你电脑上的情况进行修改。(下图)

图片14.png

图片15.png

4、编译工具设置
选择“设置”-“工具”,然后将里面的默认设置根据你电脑上的配置进行更改。(下图)

图片16.png

使用Visual FB Editor编辑器编译程序测试功能是否正常

1、编写经典的Hello, World!
打开编辑器,选择“文件”-“新建工程”-“控制台应用”,输入如下代码,然后编译:
print “Hello, World!”
sleep

图片17.png

找到你的工程文件夹,你会看到一个名为“HelloWorld”且没有后缀名的文件,鼠标右击进入终端,输入:./HelloWorld,然后回车,你会看到如下显示:

图片18.png

2、编写简单的窗体文件

经过本人亲测,编写窗体文件时需要首先关闭编辑器的深色模式,否则绘制窗体时可能会和背景融为一体,不太容易区分出来。这可能是软件的问题,也可能是和国产的Deepin系统没有做过专门适配导致。不过问题不大,随着用的人多了,未来肯定会越来越完善的。

图片19.png

选择“文件”-“新建工程”-“标准EXE”(这里并非专指Windows系统下的可执行文件),此时会自动创建一个窗体文件,然后在左侧的工具箱里选择CommandButton控件,在窗体中拖拽出一个按钮,再将该按钮的TEXT属性修改为:你好!FreeBASIC。(下图)

图片20.png

下面我们开始编译这个窗体文件,此时的编译方式和控制台下的不同,我们需要调用GTK3进行编译。具体方法是选择主界面右上方那个对勾右侧的下拉箭头,然后选择GTK里的GTK3,再点击编译按钮进行编译即可完成。注意:如果你不选择GTK3,编译会报错失败。(下图)

图片21.png

点击编译后下方的输出区域出现下述显示,证明编译成功。(下图)

图片22.png

我把这个窗体文件命名为Windows,所以在工程文件夹中会出现一个名为Windows且没有后缀名的可执行文件。(下图)

图片23.png

在该文件夹内右击进入控制台,然后输入:./Windows,然后回车,你会发现桌面上会出现刚才编写的那个窗口文件,编译成功了!(下图)

图片24.png

Visual FB Editor编辑器在Deepin桌面快捷方式美化

由于Visual FB Editor编辑器在国内的使用者很少,并且绝大部分都是在Windows系统下使用,而Deepin下使用Visual FB Editor编辑器的人更少,因此基本上没人对Visual FB Editor进行什么美化。本人是“完美主义者加强迫症患者”,Visual FB Editor编辑器的桌面图标实在太难看了,忍无可忍时必须要美化一下。废话不多说先看效果。(下图)

图片25.png

美化后是不是顺眼多了?

其实快捷方式图标的制作方法很简单,在Deepin桌面上新建一个后缀名为.desktop的文本文件,然后将下列代码复制粘贴进来保存即可,注意“Exec”(可执行文件的绝对地址)和“Icon”(图标文件的绝对地址)部分根据自己的情况进行修改。具体代码如下:
[Desktop Entry]
Categories=Development;
Comment=Freebaisc
Encoding=UTF-8
Exec=/home/Thinking/VisualFBEditor/VisualFBEditor64_gtk3
Icon=/media/Thinking/ICO/freebasic_logo.png
MimeType=
Name=VisualFBEditor
StartupWMClass=Freebasic
Terminal=false
Type=Application
X-Deepin-Vendor=user-custom

上述操作后,Visual FB Editor编辑器的专属快捷方式及图标都弄好了,你使用时只需双击运行即可。

(教程完)

Reply Favorite View the author
All Replies
2 / 2
To page
thinking2019
deepin
2024-07-27 13:12
#21
cz012273

是用的你给的命令啊,粘贴过去的。😂

我使用的是20.9系统,用教程中的命令编译出来就是GTK3。你使用的是V23版?confused

Reply View the author
thinking2019
deepin
2024-07-27 13:22
#22
cz012273

确实,按这个改了之后,可以了! like

各位大神,有编译安卓apk包的教程没有,想学习一下。

这个语言应该也支持安卓系统,只是目前国内好像没人懂,老外明白。有安卓大神儿看了也许明白怎么操作。applaud

20240727131951.jpg

Reply View the author
thinking2019
deepin
2024-07-27 21:43
#23
cz012273

是用的你给的命令啊,粘贴过去的。😂

抱歉,是我的错,这部分应该是“__USE_GTK3__”。教程晚上写的,代码看乱了,有些头昏脑胀加眼花。smirk

Reply View the author
thinking2019
deepin
2024-07-27 21:47
#24
lizipeng0013

编译时最后这里 -d USE_GTK3改为 -d __USE_GTK3__

编译libmff64_gtk3.so也要同样修改,不然编译出来的文件就是:libmff64_gtk2.so

感谢大侠指出问题,已修正!thanks

Reply View the author
乾豫恒益
deepin
2024-07-30 12:14
#25
thinking2019

后台库和.net没有任何关系。这个语言某种程度上可以算是BASIC语法的C语言。它最初的开发是为了替代QB语言,但是后来的发展越来越强,功能已经远超QB了。语法上目前和VB.net类似,但是使用GTK直接编译,理论上运行速度和C/C++接近。

你上面看到的图形化编程器也是用FreeBASIC语言编写的,我实测的结果是速度很快,运行很流畅!

关注一点:Datagridview,这个插件应该有吧?方便吗?

.net的Datagridview就是一个XX。。。

Reply View the author
乾豫恒益
deepin
2024-07-30 12:23
#26

还有, ComboBox的下拉响应动作,是一个,还是像.net的三个?

.net的ComboBox的下拉响应动作,设计者是个XXX,十年时间都没去改正过,换到VC里,还是一样。

与数据库合作,好嘛,数据查询次数多了好几倍。。。

不管怎么处理,最少要双倍,这故障。。。 无语的很。。。

最近在用QT,有熟悉的大神们,能不能帮在下解答一下,下拉响应动作是一个?两个?

Reply View the author
thinking2019
deepin
2024-07-30 12:47
#27
乾豫恒益

关注一点:Datagridview,这个插件应该有吧?方便吗?

.net的Datagridview就是一个XX。。。

我也是新手,对FreeBASIC也只是刚开始学习,你说的数据库部分还没有涉及到。不过我在网上找到一个FreeBASIC连接数据库的教程,你可以参考一下:

https://blog.csdn.net/qiaozhangchi/article/details/107782875

Reply View the author
thinking2019
deepin
2024-07-30 12:52
#28
乾豫恒益

还有, ComboBox的下拉响应动作,是一个,还是像.net的三个?

.net的ComboBox的下拉响应动作,设计者是个XXX,十年时间都没去改正过,换到VC里,还是一样。

与数据库合作,好嘛,数据查询次数多了好几倍。。。

不管怎么处理,最少要双倍,这故障。。。 无语的很。。。

最近在用QT,有熟悉的大神们,能不能帮在下解答一下,下拉响应动作是一个?两个?

你说的这个控件好像有,不过我还没学到那里,还不懂,发张截图,你可以自己安装研究一下。

20240730125046.jpg

Reply View the author
乾豫恒益
deepin
2024-07-30 13:48
#29
thinking2019

我也是新手,对FreeBASIC也只是刚开始学习,你说的数据库部分还没有涉及到。不过我在网上找到一个FreeBASIC连接数据库的教程,你可以参考一下:

https://blog.csdn.net/qiaozhangchi/article/details/107782875

看了链接的文章和其他几篇介绍文章,如果在10年前,要好好用一下,至少不用被.net折磨了。。。

现在嘛,看看就好,毕竟,VB的终点是C/C++嘛。。。

另外,VB6的执行效率在Win的家族里是公认的高。。。

对于现在想入手的新人来讲,快速入手,Python,VB等还是有足够的优势的。

这个软件与VB6是一级的,适合于当年的高手们。。。

如果想在相当的时间里用一种语言解决自己大部分的问题,C/C++是比较合适的。。。

其他的不再说了。。。不然会影响杠精们休息。。。

Reply View the author
thinking2019
deepin
2024-07-30 16:56
#30
乾豫恒益

看了链接的文章和其他几篇介绍文章,如果在10年前,要好好用一下,至少不用被.net折磨了。。。

现在嘛,看看就好,毕竟,VB的终点是C/C++嘛。。。

另外,VB6的执行效率在Win的家族里是公认的高。。。

对于现在想入手的新人来讲,快速入手,Python,VB等还是有足够的优势的。

这个软件与VB6是一级的,适合于当年的高手们。。。

如果想在相当的时间里用一种语言解决自己大部分的问题,C/C++是比较合适的。。。

其他的不再说了。。。不然会影响杠精们休息。。。

C/C++对非专业人员来讲太难了。FreeBASIC如果能学通,平时搞定自己的一些普通应用就很好了。这就好像VBA一样,专业人士根本看不上眼,但是对于业余人士编程最后落地的那一小段儿,方便快捷玩儿的不亦乐乎。proud

Reply View the author
cz012273
deepin
2024-08-04 15:51
#31

我觉得,这个FreeBasic的一个重要优势是跨平台,如果单纯在Windows下面,比它好用的有很多,像VB、Delphi,功能也都不差,特别是Delphi,新版本已经支持编译安卓、IOS程序。但在Linux平台下,Lazurus之类的就差很多,要想编个图形界面的程序,除了QT之外,还没有功能太强的,对于普通人来说,学习曲线不那么陡峭的,更是凤毛麟角。

Reply View the author
thinking2019
deepin
2024-08-05 13:21
#32
cz012273

我觉得,这个FreeBasic的一个重要优势是跨平台,如果单纯在Windows下面,比它好用的有很多,像VB、Delphi,功能也都不差,特别是Delphi,新版本已经支持编译安卓、IOS程序。但在Linux平台下,Lazurus之类的就差很多,要想编个图形界面的程序,除了QT之外,还没有功能太强的,对于普通人来说,学习曲线不那么陡峭的,更是凤毛麟角。

同意!agree

之所以关注这门语言,就是因为在Linux系统下,目前没有找到一个简单快捷且运行效率高的桌面编程软件。

目前从这几天的学习和测试情况来看,FreeBASIC入选的可能性很大。基本上可以实现一套代码,Linux系统和Windows系统下通用。下图是我学习中简单编写的用户界面,和Windows系统下的基本一致,运行速度也很快。

20240805132056.jpg

Reply View the author
cz012273
deepin
2024-08-06 18:07
#33

目前看,只要有好的创意,用什么编程语言来实现都是一样的。关键在于抓住用户的需求,能够为用户创造价值。😁

Reply View the author
thinking2019
deepin
2024-08-07 16:33
#34
cz012273

目前看,只要有好的创意,用什么编程语言来实现都是一样的。关键在于抓住用户的需求,能够为用户创造价值。😁

各取所需吧!能解决问题的编程语言就是好语言。

Reply View the author
2 / 2
To page