mieki256's diary



2024/01/24(水) [n年前の日記]

#1 [basic] FreeBASICをLinux上で使ってみた

FreeBASIC 1.10.1 を、Ubuntu Linux 20.04 LTS (x64) 上でも使ってみた。

_FreeBASIC Language | Home

FreeBASIC は、無料で利用できるBASICコンパイラ。WindowsやLinuxで使うことができる。BASICでソースを書いてコンパイルすると単一の実行形式ファイルになる。GUIアプリも作れる。構造体やクラスも使える。

FreeBASICの古い版をアンインストール :

自分の環境では、FreeBASIC 1.07.3 が既にインストールされていたので、一旦アンインストールした。

FreeBASIC-1.07.3-ubuntu-20.04-x86_64.tar.gz を展開したディレクトリの中に入って以下を打つ。-u をつけることでアンインストールできるらしい。
sudo ./install.sh -u

これで、以下のディレクトリに入っていた FreeBASIC がアンインストールされる。
/usr/local/bin/fbc
/usr/local/include/freebasic/
/usr/local/lib/freebasic/

現行版をインストール :

まずは FreeBASIC の動作に必要なパッケージを apt でインストールしておく。
sudo apt install gcc libc6-dev ncurses-dev libx11-dev libxext-dev libxpm-dev libxrandr-dev libxrender-dev

続いて、FreeBASIC 1.10.1 を入手。

_FreeBASIC Compiler - Browse /FreeBASIC-1.10.1/Binaries-Linux at SourceForge.net
_FreeBASIC Compiler - Browse /FreeBASIC-1.10.1 at SourceForge.net

今回は FreeBASIC-1.10.1-linux-x86_64.tar.gz を入手した。何故か Ubuntu Linux 20.04 用が無いので…。22.04 や 18.04用はあるんだけどなあ…。

展開して、ディレクトリに入って以下を打つ。
sudo ./install.sh -i

これで、以下のディレクトリに FreeBASIC 1.10.1 がインストールされた。
/usr/local/bin/fbc
/usr/local/include/freebasic/
/usr/local/lib/freebasic/

fbc のバージョンを確認。
$ fbc -version
FreeBASIC Compiler - Version 1.10.1 (2023-12-24), built for linux-x86_64 (64bit)
Copyright (C) 2004-2023 The FreeBASIC development team.

FBImageライブラリを使用 :

FreeBASICで、png,jpg,tga 画像を読み込めるようにするライブラリ、FBImage が使えるのか試してみた。

_FBImage static Win/Lin 32/64-bit - freebasic.net

FBImage.zip を解凍すると、lib/lin/ の中に、Linux用のライブラリファイル(.a)も入っている。

例えば、Ubuntu Linux 20.04 LTS上で FreeBASICをインストールした場合、以下の場所にヘッダーファイル(.bi)やライブラリファイル(.a)が入るので…。

/usr/local/include/freebasic/
/usr/local/lib/freebasic/linux-x86_64/

FBImage の、.bi や .a を、上記のフォルダにコピーしてやればいい。
sudo cp *.bi /usr/local/include/freebasic/
sudo cp *.a /usr/local/lib/freebasic/linux-x86_64/

ただ、.bas ファイルと同じ場所に、.bi や .a を置いておくだけでも、コンパイルは通るようだなと…。システムフォルダ(?)にコピーせずに、プロジェクトフォルダ(.basと同じ場所)に置きっぱなしにして使ったほうがいいのかもしれない。

さておき。
  • FreeBASIC 1.07.3 で FBImage を使おうとしたら .bas のビルド時にエラーが出てしまった。
  • FreeBASIC 1.10.1 で FBImage を使ったら .bas もコンパイルできたし、実行ファイルも動いてくれた。
FreeBASIC も FBImage も、現行版を使ったほうが良さそうだなと…。

ソースを1つにしたい :

Windows と Linux の両方で使えるソースにしたい。ソースの中で、「ここからここまでは Windows用」「ここからここまでは Linux用」と振り分けることはできないのだろうか。

以下の定義が使えるらしい。
__FB_WIN32__
__FB_LINUX__

_FB_WIN32
_FB_LINUX

Windowsだけが使う処理を書くときは、以下のように書く。
#ifdef __FB_WIN32__

' mmsystemを利用
#include "windows.bi"
#include "win/mmsystem.bi"

' タイマー精度を1msecに向上
timeBeginPeriod(1)

#endif

Linuxだけが使う処理を書くときは、以下のように書く。
#ifdef __FB_LINUX__

' Linux only

#endif

以上です。

過去ログ表示

Prev - 2024/01 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project