FreeBASIC is a self-hosting 32-bit BASIC compiler. It makes use of the GNU binutils programming tools and can produce console and GUI executables, and dynamic and static libraries. It fully supports the use of C libraries and has partial C++ library support. It supports a C style preprocessor that is capable of multi-line macros, conditional compilation, and file inclusion. When used in its "QB" language mode, it provides a high level of support for programs written for QuickBASIC.