fbc(1)

FBC(1) FreeBASIC Compiler FBC(1)

NAME

fbc - The FreeBASIC compiler

DESCRIPTION

Compiles FreeBASIC source code files (*.bas) to native code.

SYNOPSIS

fbc [options] input-files

OPTIONS

input-files
*.a = library, *.o = object, *.bas = source, *.rc = win32 resource script, *.res = win32 compiled resource, *.xpm = X11 icon resource
@file
Read more command line arguments from a file
-a file
Treat file as .o/.a input file
-arch type
Set target architecture (default: 686)
-asm att|intel
Set the assembler format for Asm blocks and for code generation (x86 only)
-b file
Treat file as .bas input file
-buildprefix name
Specify prefix on tool names (as, ar, ld)
-c
Compile only, do not link
-C
Preserve temporary .o files
-d name[=val]
Add a global #define
-dll
Same as -dylib
-dylib
Create a Win32 DLL or Linux/*BSD shared library
-e
Enable runtime error checking
-earray
Enable array bounds checking
-eassert
Enable assert() and assertwarn() checking
-edebug
Enable __FB_DEBUG__
-edebuginfo
Add debug information
-elocation
Enable full error location reporting
-enullptr
Enable null-pointer checking
-eunwind
Enable call stack unwind information
-entry name
Change the entry point of the program from main()
-ex
-e plus RESUME support
-exx
-ex plus array bounds/null-pointer checking
-export
Export symbols for dynamic linkage
-forcelang name
Override #lang statements in source code
-fpmode fast|precise
Select floating-point math accuracy/speed
-fpu x87|sse
Set target FPU
-g
Add debug info, enable __FB_DEBUG__, and enable asserts
-gen gas|gcc|llvm|as64
Select code generation backend
-i path
Add an include file search path
-include file
Pre-#include a file for each input .bas
-l name
Link in a library
-lang name
Select FB dialect: fb (default), deprecated, qb, fblite
-lib
Create a static library
-m name
Set main module (default if not -c: first input .bas)
-map file
Save linking map to file
-maxerr n
Only show n errors
-mt
Use thread-safe FB runtime
-nodeflibs
Do not include the default libraries when linking
-noerrline
Do not show source context in error messages
-nolib a,b,c
Do not include the specified libraries when linking
-noobjinfo
Do not read/write compile-time info from/to .o and .a files
-nostrip
Do not strip symbol information from the output file
-o file
Set .o file name for corresponding input .bas
-O value
Optimization level (default: 0)
-p path
Add a library search path
-pic
Generate position-independent code (non-x86 Unix shared libs)
-pp
Write out preprocessed input file (.pp.bas) only
-prefix path
Set the compiler prefix path
-print host|target
Display host/target system name
-print x
Display output binary/library file name (if known)
-print sha-1
Display compiler's source code commit sha-1 (if known)
-profile
Enable function profiling
-r
Write out .asm (-gen gas) or .c (-gen gcc) only
-rr
Write out the final .asm only
-R
Preserve the temporary .asm/.c file
-RR
Preserve the final .asm file
-s console|gui
Select win32 subsystem
-static
Prefer static libraries over dynamic ones when linking
-strip
Omit all symbol information from the output file
-t value
Set Win32/DOS .exe stack size in kbytes, default: 1024
-target name
Set cross-compilation target
-title name
Set XBE display title (XBox)
-v
Be verbose
-vec n
Automatic vectorization level (default: 0)
-version
Show compiler version
-w all|pedantic|n
Set minimum warning level: all, pedantic, or an integer
-w all
Enable all warnings
-w none
Disable all warnings
-w param
Enable parameter warnings
-w escape
Enable string escape sequence warnings
-w next
Enable next statement warnings
-w signedness
Enable type signedness warnings
-w constness
Enable const type warnings
-w suffix
Enable warning when up-casting discards initializers
-w error
Report warnings as errors
-w upcast
Warn when up-casting discards initializers
-Wa a,b,c
Pass options to GAS
-Wc a,b,c
Pass options to GCC (with -gen gcc)
-Wl a,b,c
Pass options to LD
-x file
Set output executable/library file name
-z gosub-setjmp
Use setjmp/longjmp to implement GOSUB
-z valist-as-ptr
Use pointer expressions to implement CVA_*() macros
-z no-thiscall
Don't use '__thiscall' calling convention
-z no-fastcall
Don't use '__fastcall' calling convention
-z fbrt
Link with 'fbrt' instead of 'fb' runtime library
-z retinflts
Enable returning some types in floating point registers
-z nocmdline
Disable #cmdline source directives

ENVIRONMENT

AS
Overrides location of GNU as (assembler)
LD
Overrides location of GNU ld (linker)
GCC
Overrides location of gcc (-gen gcc)

SEE ALSO

The full language specification and help is available in wiki format at https://www.freebasic.net/wiki/

COPYRIGHT

Copyright © 2004-2023 The FreeBASIC Development Team
This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law.

BUGS

Any bugs should be reported on the Sourceforge.net tracker located at https://www.sourceforge.net/projects/fbc/

AUTHOR

This manpage written by Ebben Feagan (ebben.feagan@gmail.com)

2023-05-20 FreeBASIC Compiler 1.10.1