# save-temps, Qsave-temps

Tells the compiler to save intermediate files created during compilation.

## Syntax

Linux: | -save-temps -no-save-temps

macOS: | -save-temps -no-save-temps

Windows: | /Qsave-temps /Qsave-temps-

## Arguments

None

## Default

Linux* and macOS systems: -no-save-temps Windows* systems: .obj files are saved | On Linux and macOS systems, the compiler deletes intermediate files after compilation is completed. On Windows systems, the compiler saves only intermediate object files after compilation is completed.

## Description

This option tells the compiler to save intermediate files created during compilation. The names of the files saved are based on the name of the source file; the files are saved in the current working directory.

If option [Q]save-temps is specified, the following occurs:

- The object .o file (Linux and macOS) or .obj file (Windows) is saved.

- The assembler .s file (Linux and macOS) or .asm file (Windows) is saved if you specified the [Q]use-asm option.

If -no-save-temps is specified on Linux or macOS systems, the following occurs:

- The .o file is put into /tmp and deleted after calling ld.

- The preprocessed file is not saved after it has been used by the compiler.

If /Qsave-temps- is specified on Windows systems, the following occurs:

- The .obj file is not saved after the linker step.

- The preprocessed file is not saved after it has been used by the compiler.

### Note

This option only saves intermediate files that are normally created during compilation.

## IDE Equivalent

None

## Alternate Options

None

## Example

If you compile program my_foo.c on a Linux or macOS system and you specify option -save-temps and option -use-asm, the compilation will produce files my_foo.o and my_foo.s.

If you compile program my_foo.c on a Windows system and you specify option /Qsave-temps and option /Quse-asm, the compilation will produce files my_foo.o and my_foo.asm.

Parent topic: Miscellaneous Options