◄ Back to index

GTC Command-line options

The computer version of GTC has a number of options available on the command-line. They are all listed here.

Please note that currently, these options are not available for the FlashApp version.

Basic usage


To compile a file named hello.c, open a command-line prompt in the folder where hello.c is stored, and type:

gtc hello.c

This will create files named hello.89z, hello.9xz and hello.v2z (or only some of those, if your program is specific to a calculator model). You can now run them after sending them to your calculator or to an emulator.

Adding options

You can modify the behaviour of GTC with command-line options (or command-line switches). Their position on the command-line does not matter. For example, if you want to use the -o switch to create files named somename.89z, somename.9xz and somename.v2z, you can type:

gtc hello.c -o somename

Or, equivalently:

gtc -o somename hello.c

See below for a complete list of options.

List of all options

Options affecting output

-o switch

By default, gtc hello.c foo.c bar.c results in an executable named hello.89z or hello.v2z. You can specify other names with this switch, for example gtc hello.c foo.c bar.c -o somename will instead create an executable named somename.89z or somename.v2z.

--folder switch

By default, calculator executables are stored in the main folder. You can store them in the folder somefold with the switch --folder=somefold.

--output switch

By default, gtc hello.c -o somename results in an executable named somename.89z; the name of the program on the calculator will thus be somename(). You can change this with the switch --output=myprog: gtc hello.c -o somename --output=myprog creates an executable named somename.89z containing a program whose name on the calculator will be myprog().

Preprocessor options

-I switch

The -I folder (or -Ifolder) switch tells GTC to look for include files not only in the current directory, but also in the folder folder. You can use this switch several times to include several folders.

-D switch

The -D SYMBOL (or -DSYMBOL) switch tells GTC to #define the symbol SYMBOL, with no specific value. The -D SYMBOL=value (or -DSYMBOL=value) switch tells GTC to #define the symbol SYMBOL, with the value value. You can use this switch several times to define several symbols.

Optimization options

It is in the philosophy of GTC to have default options as sensible as possible, so optimization options are kept to a bare minimum. Furthermore, optimizations are always enabled.

-exe switch

This switch will make your program much smaller and very slightly faster, at the expense of a short loading time (usually less than half a second). However note that because it adds an unpacker to your program, it will make very small programs (less than 3-4 kilobytes) larger, so it should not be used in this case. It has the same effect as defining the EXE_OUT preprocessor symbol.

It can be an interesting way to work around AMS's program size limit for AMS version 2.0x, because a program that exceeds the size limit when uncompressed can be compressed to a size below the limit.

-mno-bss switch

This switch disables the creation of BSS sections. In some cases it has absolutely no effect, in other cases it will either make the program faster and smaller, or make it much larger (if you are using large global arrays).

Other options

-- separator

Not an option per se, but a way to indicate that all arguments after -- are really filenames and not command-line switches. For example gtc -DHELLO hello.c -- foo.c -file-with-dashes-.c will compile the 3 files hello.c, foo.c and -file-with-dashes-.c, with the single option -DHELLO. Without -- the file -file-with-dashes-.c would have been understood as an (invalid) command-line option.