在Linux上构建FB是非常简单的,因为通常GNU / Linux发行版提供了所有必需的开发包,并且可以轻松安装,至少对于本机构建。由于64位支持被添加到FB,因此无论您是否具有32位x86或64位x86_64系统,本机构建应始终是可能的。在64位x86_64系统(或反之亦然)上交叉编译FB的32位x86版本,并为其他体系结构(如ARM)进行交叉编译也是可能的。
一般来说,编译FB-linux需要以下软件包:
- 一个现有的FreeBASIC工具,用于引导新的编译器
- GCC
- 使
- ncurses开发标头和库(实际上只是其libtinfo部分)
- gpm开发标头和库(通用鼠标)
- X11开发头文件和库(包括X11,Xext,XPM,XRandR,XRENDER)fy
- OpenGL开发标头和库(通常来自于Mesa项目)
- libffi开发头文件库
Native build
获取FB源代码
要编译新版本的FB,您首先需要
获取FB源代码.以下假设您有一个名为
fbc的目录,其中包含最新的FB源代码。
获取现有的FB-linux安装程序进行自举
我们需要一个有用的FB-linux安装来引导新的FB编译器。如果您尚未安装本机版本的FB,请从
FB的下载网站下载最新的FreeBASIC-X.XX.X-linux版本(32bit x86,64bit x86_64,ARM等),然后解压并安装它:
$ tar xf FreeBASIC-X.XX.X-linux.tar.gz
$ cd FreeBASIC-X.XX.X-linux
$ sudo ./install.sh -i
除了fbc项目之外,您可以从其他来源获取工作的FB设置。例如,一些发行版可以开箱即可提供
freebasic包。
安装开发包
以下列表显示了您必须为一些常见的GNU / Linux发行版安装的软件包。根据您使用的哪个发行版(或哪个版本),确切的包名称可能会有所不同。
基于Debian的系统(包括Ubuntu,Mint等):
- gcc
- make
- libncurses5-dev
- libgpm-dev
- libx11-dev
- libxext-dev
- libxpm-dev
- libxrandr-dev
- libxrender-dev
- libgl1-mesa-dev
- libffi-dev
OpenSUSE:
- gcc
- make
- ncurses-devel
- gpm-devel
- libX11-devel
- libXext-devel
- libXpm-devel
- libXrandr-devel
- libXrender-devel
- Mesa-libGL-devel
- libffi48-devel
Fedora的:
- gcc
- make
- ncurses-devel
- gpm-devel
- libX11-devel
- libXext-devel
- libXpm-devel
- libXrandr-devel
- libXrender-devel
- mesa-libGL-devel
- libffi-devel
编译FB
编译FB本身就像在fbc源代码目录中运行“make”一样简单。这将构建与系统架构相匹配的本地FB设置,假设系统上安装的现有fbc生成本机程序。
$ cd fbc
$ make
这应该已经生成了
bin/fbc编译器和库
lib\freebasic\linux-[architecture]\.
之后,您可以通过运行“make install”将新的fbc build安装到
/usr/local,并覆盖旧的FB安装:
$ sudo make install
使用现有的32位FB 在64位系统上编译32位FB
除了本地构建,您还可以使用非本机构建,例如使用现有的32位FB构建来引导,在64位系统上编译32位版本的FB。这是64位支持添加到FB之前非常常见的。它需要与原始构建略有不同的过程。
- 获取FB源代码。
- 安装32位版本的FB进行自举(而不是本机64位版本)。
- 安装32位开发包(不只是本地64位开发包)。
- gcc-multilib
- make
- lib32ncurses5-dev
- libx11-dev:i386
- libxext-dev:i386
- libxpm-dev:i386
- libxrandr-dev:i386
- libxrender-dev:i386
- libgl1-mesa-dev
- libgpm-dev
- lib32ffi-dev
- gcc-32bit
- make
- ncurses-devel-32bit
- gpm-devel
- libX11-devel-32bit
- libXext-devel-32bit
- libXpm-devel-32bit
- libXrandr-devel-32bit
- libXrender-devel-32bit
- Mesa-libGL-devel-32bit
- libffi48-devel-32bit
- 将以下config.mk文件添加到fbc源代码树(FB makefile旁边):
CC = gcc -m32
TARGET_ARCH = x86
这告诉FB makefile构建32位而不是64位默认值。
将CC设置为
gcc -m32而不是
gcc将导致所有C代码被编译为32位而不是默认的64位。
假设现有安装的fbc是32位的,它将已经默认编译为32位,因此不需要将FBC设置为
fbc -arch 32而不是
fbc(而较旧的32位版本的fbc版本甚至没有{989796077 }选项)。
将TARGET_ARCH设置为x86是必要的,以覆盖FB makefile的
uname -m检查(因为它在64位上返回x86_64)。这允许FB makefile选择正确的x86 rtlib / gfxlib2模块,并为x86使用正确的目录布局。
- 或者,将新建的32位FB设置安装到/usr/local中: