SkillAgentSearch skills...

Fbc

FreeBASIC is a completely free, open-source, multi-platform BASIC compiler, with syntax similar to MS-QuickBASIC, that adds new features such as pointers, object orientation, unsigned data types, inline assembly, and many others.

Install / Use

/learn @freebasic/Fbc
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

FreeBASIC - A multi-platform BASIC Compiler
Copyright (C) 2004-2025 The FreeBASIC development team.

Official site:      https://freebasic.net/
Forum:              https://freebasic.net/forum/
Online manual:      https://freebasic.net/wiki/DocToc
fbc project page:   https://sourceforge.net/projects/fbc/
GitHub mirror:      https://github.com/freebasic/fbc
Discord:            https://discord.gg/286rSdK
IRC channel:        ##freebasic at https://webchat.freenode.net
Features:           https://freebasic.net/wiki/CompilerFeatures
Requirements:       https://freebasic.net/wiki/CompilerRequirements

FreeBASIC consists of fbc (the command line compiler), the runtime libraries
(libfb and libfbgfx), and FreeBASIC header files for third-party libraries.
In order to produce executables, fbc uses the GNU binutils (assembler,
linker). When compiling for architectures other than 32bit, fbc depends
on gcc to generate assembly.

Documentation of language features, compiler options and many other details
is available in the FB manual. For help & support, visit the FB forum!

o Installation & Usage

FreeBASIC gives you the FreeBASIC compiler program (fbc or fbc.exe),
plus the tools and libraries used by it. fbc is a command line program
that takes FreeBASIC source code files (*.bas) and compiles them into
executables.  In the combined standalone packages for windows, the main
executable is named fbc32.exe (for 32-bit) and fbc64.exe (for 64-bit)

fbc is typically invoked by Integrated Development Environments (IDEs) or
text editors, from a terminal or command prompt, or through build-systems
such as makefiles. fbc itself is not a graphical code editor or IDE!

Win32 (similar for Win64):
  Combined 32-bit and 64-bit standalone packages:
    Download and extract latest:
       - FreeBASIC-x.xx.x-winlibs-gcc-9.3.0.7z or
       - FreeBASIC-x.xx.x-gcc-5.2.0.7z
       - fbc32.exe and fbc64.exe are used instead of fbc.exe
  Separate 32-bit and 64-bit standalone packages (based on winlibs-gcc-9.3.0):
    Download and extract latest:
       - FreeBASIC-x.xx.x-win32.zip or FreeBASIC-x.xx.x-win32.7z for 32-bit
       - FreeBASIC-x.xx.x-win64.zip or FreeBASIC-x.xx.x-win64.7z for 64-bit

  Now you can use fbc.exe from the installation directory to compile FB
  programs (*.bas files) into executables (*.exe files). Open a command
  prompt (cmd.exe) and run fbc.exe from there, for example:
    1. In the opened command prompt, type in the following command and
       press ENTER:
         > fbc.exe examples\hello.bas
    2. This should have created examples\hello.exe in the FreeBASIC
       installation directory. You can run it by entering:
         > examples\hello.exe

  A FreeBASIC-x.xx.x-win32.exe installer is also available but should
  only be installed on win32 platforms.
    1. Click Start -> FreeBASIC -> Open console (installer only)
    2. In the opened command prompt, type in the following command and
       press ENTER:
         > fbc.exe examples\hello.bas
    3. This should have created examples\hello.exe in the FreeBASIC
       installation directory. You can run it by entering:
         > examples\hello.exe

  Optionally, you can install a text editor or IDE which will invoke fbc.exe
  for you, for example:
    Tiko editor:   https://github.com/PaulSquires/tiko/releases
    VisualFBEditor https://github.com/XusinboyBekchanov/VisualFBEditor/releases
   Or even though is older and unmaintained will work (with some effort):
    FBIDE:         https://fbide.freebasic.net/

Linux (if FreeBASIC is not available through your package manager):
  Download and extract the latest FreeBASIC-x.xx.x-linux.tar.gz. Open a
  terminal and cd into the extracted FreeBASIC-x.xx.x-linux directory, and
  run "sudo ./install.sh -i" to copy the FB setup into /usr/local.
  To compile FB programs, please install the following packages (names may
  vary depending on your Linux distribution):
    Debian/Ubuntu:
      gcc libncurses5-dev libffi-dev libgl1-mesa-dev
      libx11-dev libxext-dev libxrender-dev libxrandr-dev libxpm-dev
      libtinfo5 libgpm-dev
    Fedora:
      gcc ncurses-devel ncurses-compat-libs libffi-devel mesa-libGL-devel
      libX11-devel libXext-devel libXrender-devel libXrandr-devel
      libXpm-devel
  If you want to use the 32bit version of FB on a 64bit system, it is
  necessary to have the gcc 32bit multilib support and 32bit versions
  of the libraries installed.
    Debian/Ubuntu:
      gcc-multilib lib32ncurses5-dev libx11-dev:i386 libxext-dev:i386
      libxrender-dev:i386 libxrandr-dev:i386 libxpm-dev:i386 libtinfo5:i386

  Now you can use fbc to compile FB programs (*.bas files) into executables.
  For example:
    $ cd FreeBASIC-x.xx.x-linux/examples
    $ fbc hello.bas
  This should have created the hello program. You can run it by entering:
    $ ./hello

  Optionally, you can install a text editor or IDE which will invoke fbc for
  your, for example:
    Geany: https://geany.org (sudo apt-get install geany)

DOS:
  Download and extract the latest FreeBASIC-x.xx.x-dos.zip.

  Now you can use fbc.exe from the installation directory to compile FB
  programs (*.bas files) into executables (*.exe files). For example:
    > fbc.exe examples\hello.bas
  This should have created examples\hello.exe. You can run it by entering:
    > examples\hello.exe

o Licensing

The FreeBASIC compiler (fbc) is licensed under the GNU GPLv2 or later.

The FreeBASIC runtime library (libfb and the thread-safe version, libfbmt)
and the FreeBASIC graphics library (libfbgfx and the thread-safe version,
libfbgfxmt) are licensed under the GNU LGPLv2 or later, with this exception
to allow linking to it statically:
    As a special exception, the copyright holders of this library give
    you permission to link this library with independent modules to
    produce an executable, regardless of the license terms of these
    independent modules, and to copy and distribute the resulting
    executable under terms of your choice, provided that you also meet,
    for each linked independent module, the terms and conditions of the
    license of that module. An independent module is a module which is
    not derived from or based on this library. If you modify this library,
    you may extend this exception to your version of the library, but
    you are not obligated to do so. If you do not wish to do so, delete
    this exception statement from your version.

The FreeBASIC documentation is licensed under the GNU FDL.

Dependencies on third-party libraries:

The FreeBASIC runtime library uses LibFFI to implement the Threadcall
functionality. This means that, by default, FreeBASIC programs will be
linked against LibFFI when using Threadcall. LibFFI is released under
the MIT/Expat license, see doc/libffi-license.txt.

By default, FreeBASIC programs are linked against various system and/or
support libraries, depending on the platform. Those include the DJGPP
libraries used by FreeBASIC for DOS and the MinGW/GCC libraries used by
FreeBASIC for Windows.

o Included/used third-party tools and libraries:

- DJGPP         http://www.delorie.com/
- GCC           https://gcc.gnu.org/
- GNU binutils  https://gnu.org/software/binutils/
- GNU debugger  https://gnu.org/software/gdb/
- GoRC          http://godevtool.com/
- LibFFI        https://sourceware.org/libffi/
- MinGW         https://osdn.net/projects/mingw/
- MinGW-w64     https://mingw-w64.org/
                https://github.com/niXman/mingw-builds-binaries/
- OpenXDK       https://openxdk.sourceforge.net/
- TDM-GCC       https://jmeubank.github.io/tdm-gcc/
- WinLibs       https://www.winlibs.com/

o Credits

Project members:
- Andre Victor T. Vicentini (av1ctor[at]yahoo.com.br)
    Founder, main compiler developer, author of many parts of the runtime,
    lead developer 2004 to 2010
    FB headers (FBSWIG) & emscripten port
    too many additions and improvements to list
- Angelo Mottola (a.mottola[at]libero.it)
    Author of the FB graphics library, built-in threads, thread-safe
    runtime, ports I/O, dynamic library loading, Linux port.
- Bryan Stoeberl (b_stoeberl[at]yahoo.com)
    SSE/SSE2 floating point math, AST vectorization.
- Daniel C. Klauer (daniel.c.klauer[at]web.de)
    lead developer 2010 to 2017
    automatic header / bindings generation (fbfrog)
    FB releases 0.21 to 1.05.0, C & LLVM backends, 64bit port,
    dynamic arrays in UDTs, virtual methods, preprocessor-only mode,
    many fixes and improvements.to compiler, rtlib & gfxlib2
    too many additions and improvements to list
- Daniel R. Verkamp (i_am_drv[at]yahoo.com)
    DOS, XBox, Darwin, *BSD ports, DLL and static library automation,
    VB-compatible runtime functions, compiler optimizations,
    miscellaneous fixes and improvements.
- Ebben Feagan (sir_mud[at]users.sourceforge.net)
    FB headers, C emitter
- Jeff Marshall (coder[at]execulink.com)
    FB releases 0.17 to 0.20, and later 1.06.0 and up
    FB documentation (wiki maintenance, fbdocs offline-docs generator),
    Gosub/Return, profiling support, dialect specifics, DOS serial driver,
    miscellaneous fixes and improvements.to compiler, rtlib & gfxlib2
    lead developer since 2017
- Mark Junker (mjscod[at]gmx.de)
    Author of huge parts of the runtime (printing support, date/time
    functions, SCR/LPTx/CO
View on GitHub
GitHub Stars1.1k
CategoryDevelopment
Updated1d ago
Forks162

Languages

FreeBASIC

Security Score

85/100

Audited on Mar 26, 2026

No findings