AuditsCLI.exe in Embarcadero RAD Studio 13 Architect is the command-line interface for Code Audits, part of the static code analysis tools included in RAD Studio.
Here’s a breakdown of its purpose and functionality:
🧩 Purpose
AuditsCLI.exe allows you to run Delphi and C++ static
code audits (code analysis checks) from the command line, rather
than through the IDE.
It’s typically used for:
⚙️ Main Features
🧾 Typical Usage Example
AuditsCLI.exe -project "C:\Projects\MyApp.dproj" -profile "Default" -output "C:\Reports\MyApp_Audit.xml"
Parameters (common ones):
|
Parameter |
Description |
|
-project <file> |
Specifies the Delphi/C++ project to analyze |
|
-profile <name> |
Selects an audit profile (set of rules) |
|
-output <file> |
Path for the audit result report |
|
-rules |
Lists all available audit rules |
|
-help |
Displays command-line options and usage help |
📘 When to Use
Use AuditsCLI.exe if you want to:
Embarcadero Audits and Metrics command line version
Copyright (c) 2010 Embarcadero Technologies, Inc.
Syntax:
AuditsCLI.exe --{audits|metrics} --{xml|html} <compiler-options> [--config=<config-file>] [-o <output-file>] <project.dproj>
List of options:
--audits run Audits analysis
--metrics run Metrics analysis
--xml generate unprocessed XML output
--html generate HTML output
--config=<config-file.mts> or
--config=<config-file.adt> specifies the file storing the set of audits or metrics to analyze
<project.dproj> Delphi project file
-o <output-file> write analysis result to <output-file>
Defaults to projectname.{audits|metrics}.{xml|html}
--id=<AUDIT-ID>:<param>=<value>:<param>=<value>,<AUDIT-ID>;...
Enable or disable individual analyzers.
See --id-help and --id-help=<AUDIT-ID;> for details.
--id-help list available analyzers. Use together with --audits or --metrics.
--id-help=XYZ list parameters and usage example of analyzer XYZ
--build-config=<name> Override default build configuration (e.g. Debug, Release)
-v verbose output
-q suppress messages
Compiler options:
-Ipath1;path2;... include directories
-Upath1;path2;... compiled unit directories
-Dsymbol1;symbol2;... conditional compilation symbols
-A<unit>=<alias> unit aliases
bcc32.exe is the classic Borland C++ 32-bit compiler included with Embarcadero RAD Studio (in your case, RAD Studio 13 Architect).
Here’s a summary of its functionality and role:
🧩 Purpose
bcc32.exe is the legacy 32-bit C++ compiler originally based on Borland’s older code generation technology. It is maintained primarily for backward compatibility with older C++Builder projects that were written before the introduction of the modern Clang-based compilers.
⚙️ Key Functions
🧱 Typical Use Cases
🧭 "Arial" Context in RAD
Studio 13
🧰 Associated Tools
Embarcadero C++ 7.60 for Win32 Copyright (c) 1993-2023 Embarcadero Technologies, Inc.
Available options (* = default setting, xxx = has sub-options: use -h -X):
(Note: -X- or -w-XXX will usually undo whatever was set or unset by -X or -wXXX.
If two options conflict, the last one specified will be used.)
--sysroot Sets the logical root directory for headers, libraries and frameworks
(Paths specified in --sysinc or --syslib and those in -F that begin
with '/' are prefixed with this value)
--sysinc Set the system include file search path
(if specified, sysroot will be prepended)
--syslib Set the system library file search path
(if specified, sysroot will be prepended)
--savemem Set maximum SAVEMEM memory (in Mb)
(This is the contiguous memory allocated to store global symbols and
similar constructs. Pre-compiled headers use this memory)
--version Show compiler version
--replacehdr Replace header name (e.g. --replaceHeader=a.h=b.h)
--xrtti Generate extended rtti information
-3 Generate 80386 protected-mode compatible instructions
-4 Generate 80386/80486 protected-mode compatible instructions
-5 Generate Pentium instructions
-6 Generate Pentium Pro instructions
-Axxx Enable ANSI conformance
-B Compile to .ASM (-S), then assemble to .OBJ
-Cxxx Enable nested comments
-D -D<name> defines 'name' as a null string, or use -D<name>=<value>
-E Specify which assembler to use
-G Optimize for size/speed; use -O1 and -O2 instead
-Hxxx Generate and use precompiled headers
-I Set the include file search path
-Jxxx Template generation options
-K Set default character type to unsigned
-L Library file search path
-M Create a linker map file
-N Hodgepodge of miscellanity (see -h -N)
-Nd Macros get a value of "1" by default (-DX => -DX=1)
-Nt GNU __typeof(var) support
-Nv Allow void& as a valid type
-O Optimize jumps
-P Perform C++ compile regardless of source extension
-Q Extended compiler error information
-Rxxx Include browser information in generated .OBJ files
-S Compile to assembly
-T Specify assembler option, e.g. -Tx
-U Undefine any previous definitions of name
-Vxxx Compatibility options
-W Target is a Windows application
-X Disable compiler autodependency output
-Zd Output global defs as DocBook specs; to specify: -Zd=<file>.c
-Zn Disable and/or don't define CodeGear builtins
-Zx Output global definitions to XML file.
Sub Options:
-Zx=<filename> Emit only types/declarations in <filename>
-Zxf[=filename] Skip base type members
-Zxm[=filename] Emit macros
-Zxp[=filename] Emit file & line position
-axxx Set data alignment boundary. Default is -a8; -a- means -a1
-b Enable -bi and treat enums as ints from a typechecking point of view
* -bi Make sizeof(enum x) == sizeof(int) unless explicitly stated otherwise
-c Compile to object file only, do not link
-d Merge duplicate strings
-dc Put strings into the read-only data segment
-dw Put strings into the (writeable) data segment
-e Specify target executable pathname
* -ff Fast floating point
-fp Correct Pentium FDIV flaw
* -fq Use quiet floating point compare instruction (FUCOMP)
-g Stop batch compilation after n warnings (Default = 255)
-h Request help ('-h -' shows all help). Can be specific: -h -V
-i Set maximum significant identifier length (Default = 250)
-j Stop batch compilation after n errors (Default = 50)
* -k Generate standard stack frames
-l Pass options to the linker; example: -ls -l-x
-m Generate makefile dependency information
-md Put dependency info in .d files, not in the object file
-mm Ignore system header files while generating dependency info
-mo Specify the output file for dependency info
-n Set output directory for object files
-o Set output filename (-o<filename> or -o <filename> supported)
-pxxx Use Pascal calling convention
-q Suppress compiler identification banner
-r Use register variables
-rd Use register variables only when register keyword is employed
-s Link using the system's non-incremental linker
-t Specify target executable
* -u Generate underscores on symbol names
-vxxx Turn on source debugging
-w Display all warnings
-w! Return non-zero from compiler on warnings
-xxxx Enable exception handling
-y Debug line numbers on
-z Options for redefining standard segment names
Use '-h <OPT>' for help on a specific option, or
'-h -' to see all available options.
In Embarcadero RAD Studio 13 Architect, the executable bcc32c.exe is the modern C++ compiler for 32-bit Windows applications, based on the Clang/LLVM compiler toolchain.
Here’s a detailed summary of its functionality:
🧩 Executable: bcc32c.exe
Full name: Embarcadero C++ Compiler (Clang-based) for
Win32
Primary role: Compiles C and C++ source code into 32-bit Windows object
files and executables.
⚙️ Key Functions
🔧 Usage Context
📦 Related Compilers
|
Executable |
Description |
|
bcc32.exe |
Legacy Borland C++ 32-bit compiler (pre-Clang) |
|
bcc32c.exe |
Clang-enhanced 32-bit C++ compiler |
|
bcc32x.exe |
Clang-based C++ cross-compiler (used by IDE internally) |
|
bcc64.exe |
Clang-based 64-bit C++ compiler |
🧠 Summary
bcc32c.exe is the Clang-based, modern 32-bit C++ compiler in RAD Studio 13. It provides up-to-date language features, better standards compliance, and improved performance compared to the legacy bcc32.exe.
Embarcadero C++ 7.60 for Win32 Copyright (c) 2012-2023 Embarcadero Technologies, Inc.
Available options (* = default setting, xxx = has sub-options: use -h -X):
(Note: -X- or -w-XXX will usually undo whatever was set or unset by -X or -wXXX.
If two options conflict, the last one specified will be used.)
--sysroot (Note: -X- or -w-XXX will usually undo whatever was set or unset by -X or -wXXX.
--sysinc Set the system include file search path
(if specified, sysroot will be prepended)
--syslib Set the system library file search path
(if specified, sysroot will be prepended)
--savemem Set maximum SAVEMEM memory (in Mb)
(This is the contiguous memory allocated to store global symbols and
similar constructs. Pre-compiled headers use this memory)
--version Show compiler version
--replacehdr Replace header name (e.g. --replaceHeader=a.h=b.h)
--xrtti Generate extended rtti information
-3 Generate 80386 protected-mode compatible instructions
-4 Generate 80386/80486 protected-mode compatible instructions
-5 Generate Pentium instructions
-6 Generate Pentium Pro instructions
-Axxx Enable ANSI conformance
-B Compile to .ASM (-S), then assemble to .OBJ
-Cxxx Enable nested comments
-D -D<name> defines 'name' as a null string, or use -D<name>=<value>
-E Specify which assembler to use
-G Optimize for size/speed; use -O1 and -O2 instead
-Hxxx Generate and use precompiled headers
-I Set the include file search path
-Jxxx Template generation options
-K Set default character type to unsigned
-L Library file search path
-M Create a linker map file
-N Hodgepodge of miscellanity (see -h -N)
-Nd Macros get a value of "1" by default (-DX => -DX=1)
-Nt GNU __typeof(var) support
-Nv Allow void& as a valid type
-O Optimize jumps
-P Perform C++ compile regardless of source extension
-Q Extended compiler error information
-Rxxx Include browser information in generated .OBJ files
-S Compile to assembly
-T Specify assembler option, e.g. -Tx
-U Undefine any previous definitions of name
-Vxxx Compatibility options
-W Target is a Windows application
-X Disable compiler autodependency output
-Y
-Zd Output global defs as DocBook specs; to specify: -Zd=<file>.c
-Zn Disable and/or don't define CodeGear builtins
-Zx Output global definitions to XML file.
Sub Options:
-Zx=<filename> Emit only types/declarations in <filename>
-Zxf[=filename] Skip base type members
-Zxm[=filename] Emit macros
-Zxp[=filename] Emit file & line position
-axxx Set data alignment boundary. Default is -a8; -a- means -a1
-b Enable -bi and treat enums as ints from a typechecking point of view
* -bi Make sizeof(enum x) == sizeof(int) unless explicitly stated otherwise
-c Compile to object file only, do not link
-d Merge duplicate strings
-dc Put strings into the read-only data segment
-dw Put strings into the (writeable) data segment
-e Specify target executable pathname
-ff Fast floating point
-fp Correct Pentium FDIV flaw
-fq Use quiet floating point compare instruction (FUCOMP)
-g Stop batch compilation after n warnings (Default = 255)
-h Request help ('-h -' shows all help). Can be specific: -h -V
-i Set maximum significant identifier length (Default = 250)
-j Stop batch compilation after n errors (Default = 50)
-k Generate standard stack frames
-l Pass options to the linker; example: -ls -l-x
-m Generate makefile dependency information
-md Put dependency info in .d files, not in the object file
-mm Ignore system header files while generating dependency info
-mo Specify the output file for dependency info
-n Set output directory for object files
-o Set output filename (-o<filename> or -o <filename> supported)
-pxxx Use Pascal calling convention
-q Suppress compiler identification banner
-r Use register variables
-rd Use register variables only when register keyword is employed
-s Link using the system's non-incremental linker
-t Specify target executable
-u Generate underscores on symbol names
-vxxx Turn on source debugging
-w Display all warnings
-w! Return non-zero from compiler on warnings
-xxxx Enable exception handling
-y Debug line numbers on
-z Options for redefining standard segment names
Use '-h <OPT>' for help on a specific option, or
'-h -' to see all available options.
BCC32X.exe - Clang-enhanced C++
Compiler
BCC32X.exe is the modern C++ compiler included with RAD Studio. It's a
Clang-based compiler that replaced the older classic Borland C++ compiler
(bcc32.exe) and represents Embarcadero's transition to LLVM/Clang technology.
Key Functionality
Standalone vs. IDE Usage
BCC32X.exe can absolutely be used as a standalone application - it is not restricted to IDE use
only. You can:
Typical Standalone Usage:
bcc32x.exe [options] source.cpp
Common options include:
The IDE uses this compiler behind the scenes, but you have full access to
it independently for your own build workflows.
bcc64.exe is the 64-bit C++ Compiler for
the Clang-enhanced Embarcadero C++ Compiler (BCC). It is the core
command-line driver that translates C and C++ source code (.c, .cpp) into 64-bit executable programs (.exe), dynamic-link
libraries (.dll), and object files (.o).
It is a modern compiler based on the Clang/LLVM
architecture, which provides excellent standards compliance (C++11, C++17,
C++20), powerful optimization capabilities, and improved diagnostics and error
messages compared to its legacy predecessor.
Is it strictly used by the Delphi IDE or can it be used
standalone?
It can be used as a standalone application, and this is a
primary feature.
Let's break this down:
1. Use by the Delphi/C++Builder IDE (Rad Studio)
The Delphi and C++Builder IDEs that are part of Rad Studio
are sophisticated tools that manage the entire build process for you. When you
press "Build" or "Run" for a C++ project, the IDE
does not directly call bcc64.exe itself. Instead, it
calls a higher-level build management tool.
So, while the IDE relies on bcc64.exe for
C++ compilation, it is not the direct user.
2. Standalone Use
This is where bcc64.exe shines as a powerful,
independent tool. You can use it directly from the command prompt or
integrate it into any build system you prefer (e.g., CMake,
Makefiles, custom scripts).
Why would you use it standalone?
How to use it standalone:
Example Command:
bash
bcc64 -c -I"C:\Path\To\My\Includes" -oMyObject.o MySource.cpp
This command:
To create a full executable, you would then call the linker
(ilink64.exe), or you can let bcc64.exe drive the entire process by
omitting the -c flag.
Key Functionality
Conclusion
bcc64.exe is a standalone, command-line 64-bit C++
compiler. While it is a critical component used by the Rad Studio IDE
when building C++ projects, it is designed and provided as a first-class tool
that can be used independently for scripting, automation, and integration into
custom build environments. It is not used by the Delphi compiler for compiling
Pascal code.
Embarcadero C++ 7.60 for Win64 Copyright (c) 2012-2023 Embarcadero Technologies, Inc.
OVERVIEW: Embarcadero C/C++ compiler driver for Win64
USAGE: bcc64.exe [options] <inputs>
OPTIONS:
-### Print (but do not run) the commands to run for this compilation
--analyzer-output <value>
Static analyzer report output format (html|plist|plist-multi-file|plist-html|text).
--analyze Run the static analyzer
-arcmt-migrate-emit-errors
Emit ARC errors even if the migrator can fix them
-arcmt-migrate-report-output <value>
Output path for the plist report
-B <dir> Add <dir> to search path for binaries and object files used implicitly
-CC Include comments from within macros in preprocessed output
-cl-denorms-are-zero OpenCL only. Allow denormals to be flushed to zero.
-cl-fast-relaxed-math OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__.
-cl-finite-math-only OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
-cl-fp32-correctly-rounded-divide-sqrt
OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
-cl-kernel-arg-info OpenCL only. Generate kernel argument metadata.
-cl-mad-enable OpenCL only. Allow use of less precise MAD computations in the generated binary.
-cl-no-signed-zeros OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
-cl-opt-disable OpenCL only. This option disables all optimizations. By default optimizations are enabled.
-cl-single-precision-constant
OpenCL only. Treat double precision floating-point constant as single precision constant.
-cl-std=<value> OpenCL language standard to compile for.
-cl-strict-aliasing OpenCL only. This option is added for compatibility with OpenCL 1.0.
-cl-unsafe-math-optimizations
OpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable.
--cuda-compile-host-device
Compile CUDA code for both host and device (default). Has no effect on non-CUDA compilations.
--cuda-device-only Compile CUDA code for device only
--cuda-gpu-arch=<value> CUDA GPU architecture (e.g. sm_35). May be specified more than once.
--cuda-host-only Compile CUDA code for host only. Has no effect on non-CUDA compilations.
--cuda-noopt-device-debug
Enable device-side debug info generation. Disables ptxas optimizations.
--cuda-path=<value> CUDA installation path
-cxx-isystem <directory>
Add directory to the C++ SYSTEM include search path
-C Include comments in preprocessed output
-c Only run preprocess, compile, and assemble steps
-dD Print macro definitions in -E mode in addition to normal output
-dependency-dot <value> Filename to write DOT-formatted header dependencies to
-dependency-file <value>
Filename (or -) to write dependency output to
-dI Print include directives in -E mode in addition to normal output
-dM Print macro definitions in -E mode instead of normal output
-dwo-dir <directory> Write dwo files to <directory>
-D <macro>=<value> Define <macro> to <value> (or 1 if <value> omitted)
-emit-ast Emit Clang AST files for source inputs
-emit-llvm Use the LLVM representation for assembler and object files
-external-linker <arg> Select <arg> as external linker
-E Only run the preprocessor
-faligned-allocation Enable C++17 aligned allocation functions
-fallow-editor-placeholders
Treat editor placeholders as valid source code
-fansi-escape-codes Use ANSI escape codes for diagnostics
-fapple-kext Use Apple's kernel extensions ABI
-fapple-pragma-pack Enable Apple gcc-compatible #pragma pack handling
-fapplication-extension Restrict code to those available for App Extensions
-fblocks Enable the 'blocks' language feature
-fborland-define-external-types
Generate definitions for external debug types into PCH file
-fborland-extensions Accept non-standard constructs supported by the Borland compiler
-fborland-use-external-types
Generate references to external debug types from PCH file
-fborland-xrtti Enable extended RTTI information for Delphi style classes
-fbuild-session-file=<file>
Use the last modification time of <file> as the build session timestamp
-fbuild-session-timestamp=<time since Epoch in seconds>
Time when the current build session started
-fbuiltin-module-map Load the clang builtins module map file.
-fclang-abi-compat=<version>
Attempt to match the ABI of Clang <version>
-fcolor-diagnostics Use colors in diagnostics
-fcomment-block-commands=<arg>
Treat each comma separated argument in <arg> as a documentation comment block command
-fcoroutines-ts Enable support for the C++ Coroutines TS
-fcoverage-mapping Generate coverage mapping to enable code coverage analysis
-fcuda-approx-transcendentals
Use approximate transcendental functions
-fcuda-flush-denormals-to-zero
Flush denormal floating point values to zero in CUDA device mode.
-fcxx-exceptions Enable C++ exceptions
-fdata-sections Place each data in its own section (ELF Only)
-fdebug-info-for-profiling
Emit extra debug info to make sample profile more accurate.
-fdebug-macro Emit macro debug information
-fdebug-prefix-map=<value>
remap file source paths in debug info
-fdebug-types-section Place debug types in their own section (ELF Only)
-fdeclspec Allow __declspec as a keyword
-fdelayed-template-parsing
Parse templated function definitions at the end of the translation unit
-fdiagnostics-absolute-paths
Print absolute paths in diagnostics
-fdiagnostics-hotness-threshold=<number>
Prevent optimization remarks from being output if they do not have at least this profile count
-fdiagnostics-parseable-fixits
Print fix-its in machine parseable form
-fdiagnostics-print-source-range-info
Print source range spans in numeric form
-fdiagnostics-show-hotness
Enable profile hotness information in diagnostic line
-fdiagnostics-show-note-include-stack
Display include stacks for diagnostic notes
-fdiagnostics-show-option
Print option name with mappable diagnostics
-fdiagnostics-show-template-tree
Print a template comparison tree for differing templates
-fdollars-in-identifiers
Allow '$' in identifiers
-fembed-bitcode-marker Embed placeholder LLVM IR data as a marker
-fembed-bitcode= Embed LLVM bitcode (option: off, all, bitcode, marker)
-fembed-bitcode Embed LLVM IR bitcode as data
-femit-all-decls Emit all declarations, even if unused
-femulated-tls Use emutls functions to access thread_local variables
-fexceptions Enable support for exception handling
-fexperimental-new-pass-manager
Enables an experimental new pass manager in LLVM.
-ffast-math Allow aggressive, lossy floating-point optimizations
-ffixed-r9 Reserve the r9 register (ARM only)
-ffixed-x18 Reserve the x18 register (AArch64 only)
-ffp-contract=<value> Form fused FP ops (e.g. FMAs): fast (everywhere) | on (according to FP_CONTRACT pragma, default) | off (never fuse)
-ffreestanding Assert that the compilation takes place in a freestanding environment
-ffunction-sections Place each function in its own section (ELF Only)
-fgnu-keywords Allow GNU-extension keywords regardless of language standard
-fgnu-runtime Generate output compatible with the standard GNU Objective-C runtime
-fgnu89-inline Use the gnu89 inline semantics
-fimplicit-module-maps Implicitly search the file system for module map files.
-finline-functions Inline suitable functions
-finline-hint-functions Inline functions which are (explicitly or implicitly) marked inline
-finstrument-functions Generate calls to instrument function entry and exit
-fintegrated-as Enable the integrated assembler
-flto-jobs=<value> Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
-flto=<value> Set LTO mode to either 'full' or 'thin'
-flto Enable LTO in 'full' mode
-fmath-errno Require math functions to indicate errors by setting errno
-fmax-type-align=<value>
Specify the maximum alignment to enforce on pointers lacking an explicit alignment
-fmodule-file=<file> Load this precompiled module file
-fmodule-map-file=<file>
Load this module map file
-fmodule-name=<name> Specify the name of the module to build
-fmodules-cache-path=<directory>
Specify the module cache path
-fmodules-decluse Require declaration of modules used within a module
-fmodules-disable-diagnostic-validation
Disable validation of the diagnostic options when loading the module
-fmodules-ignore-macro=<value>
Ignore the definition of the given macro when building and loading modules
-fmodules-prune-after=<seconds>
Specify the interval (in seconds) after which a module file will be considered unused
-fmodules-prune-interval=<seconds>
Specify the interval (in seconds) between attempts to prune the module cache
-fmodules-search-all Search even non-imported modules to resolve references
-fmodules-strict-decluse
Like -fmodules-decluse but requires all headers to be in modules
-fmodules-ts Enable support for the C++ Modules TS
-fmodules-user-build-path <directory>
Specify the module user build path
-fmodules-validate-once-per-build-session
Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
-fmodules-validate-system-headers
Validate the system headers that a module depends on when loading the module
-fmodules Enable the 'modules' language feature
-fms-compatibility-version=<value>
Dot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
-fms-compatibility Enable full Microsoft Visual C++ compatibility
-fms-extensions Accept some non-standard constructs supported by the Microsoft compiler
-fmsc-version=<value> Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
-fnew-alignment=<align> Specifies the largest alignment guaranteed by '::operator new(size_t)'
-fno-access-control Disable C++ access control
-fno-assume-sane-operator-new
Don't assume that C++'s global operator new can't alias any pointer
-fno-autolink Disable generation of linker directives for automatic library linking
-fno-builtin-<value> Disable implicit builtin knowledge of a specific function
-fno-builtin Disable implicit builtin knowledge of functions
-fno-common Compile common globals like normal definitions
-fno-constant-cfstrings Disable creation of CodeFoundation-type constant strings
-fno-coverage-mapping Disable code coverage analysis
-fno-crash-diagnostics Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash
-fno-debug-info-for-profiling
Do not emit extra debug info for sample profiler.
-fno-debug-macro Do not emit macro debug information
-fno-declspec Disallow __declspec as a keyword
-fno-delayed-template-parsing
Disable delayed template parsing
-fno-diagnostics-fixit-info
Do not include fixit information in diagnostics
-fno-dollars-in-identifiers
Disallow '$' in identifiers
-fno-elide-constructors Disable C++ copy constructor elision
-fno-elide-type Do not elide types when printing diagnostics
-fno-experimental-new-pass-manager
Disables an experimental new pass manager in LLVM.
-fno-gnu-inline-asm Disable GNU style inline asm
-fno-integrated-as Disable the integrated assembler
-fno-jump-tables Do not use jump tables for lowering switches
-fno-lax-vector-conversions
Disallow implicit conversions between vectors with a different number of elements or different element types
-fno-lto Disable LTO mode (default)
-fno-merge-all-constants
Disallow merging of constants
-fno-objc-infer-related-result-type
do not infer Objective-C related result type based on method family
-fno-operator-names Do not treat C++ operator name keywords as synonyms for operators
-fno-preserve-as-comments
Do not preserve comments in inline assembly
-fno-profile-generate Disable generation of profile instrumentation.
-fno-profile-instr-generate
Disable generation of profile instrumentation.
-fno-profile-instr-use Disable using instrumentation data for profile-guided optimization
-fno-reroll-loops Turn off loop reroller
-fno-rtlib-add-rpath Do not add -rpath with architecture-specific resource directory to the linker flags
-fno-rtti Disable generation of rtti information
-fno-sanitize-address-use-after-scope
Disable use-after-scope detection in AddressSanitizer
-fno-sanitize-blacklist Don't use blacklist file for sanitizers
-fno-sanitize-cfi-cross-dso
Disable control flow integrity (CFI) checks for cross-DSO calls.
-fno-sanitize-coverage=<value>
Disable specified features of coverage instrumentation for Sanitizers
-fno-sanitize-memory-track-origins
Disable origins tracking in MemorySanitizer
-fno-sanitize-recover=<value>
Disable recovery for specified sanitizers
-fno-sanitize-stats Disable sanitizer statistics gathering.
-fno-sanitize-thread-atomics
Disable atomic operations instrumentation in ThreadSanitizer
-fno-sanitize-thread-func-entry-exit
Disable function entry/exit instrumentation in ThreadSanitizer
-fno-sanitize-thread-memory-access
Disable memory access instrumentation in ThreadSanitizer
-fno-sanitize-trap=<value>
Disable trapping for specified sanitizers
-fno-short-wchar Force wchar_t to be an unsigned int
-fno-show-column Do not include column number on diagnostics
-fno-show-source-location
Do not include source location information with diagnostics
-fno-signed-char Char is unsigned
-fno-signed-zeros Allow optimizations that ignore the sign of floating point zeros
-fno-spell-checking Disable spell-checking
-fno-stack-protector Disable the use of stack protectors
-fno-standalone-debug Limit debug information produced to reduce size of debug binary
-fno-threadsafe-statics Do not emit code to make initialization of local statics thread safe
-fno-trigraphs Do not process trigraph sequences
-fno-unroll-loops Turn off loop unroller
-fno-use-cxa-atexit Don't use __cxa_atexit for calling destructors
-fno-use-init-array Don't use .init_array instead of .ctors
-fobjc-arc-exceptions Use EH-safe code when synthesizing retains and releases in -fobjc-arc
-fobjc-arc Synthesize retain and release calls for Objective-C pointers
-fobjc-exceptions Enable Objective-C exceptions
-fobjc-runtime=<value> Specify the target Objective-C runtime kind and version
-fobjc-weak Enable ARC-style weak references in Objective-C
-fopenmp-targets=<value>
Specify comma-separated list of triples OpenMP offloading targets to be supported
-foptimization-record-file=<value>
Specify the file name of any generated YAML optimization record
-fpack-struct=<value> Specify the default maximum struct packing alignment
-fpascal-strings Recognize and construct Pascal-style string literals
-fpcc-struct-return Override the default ABI to return all structs on the stack
-fplugin=<dsopath> Load the named plugin (dynamic shared object)
-fprebuilt-module-path=<directory>
Specify the prebuilt module path
-fprofile-generate=<directory>
Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)
-fprofile-generate Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM_PROFILE_FILE env var)
-fprofile-instr-generate=<file>
Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var)
-fprofile-instr-generate
Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)
-fprofile-instr-use=<value>
Use instrumentation data for profile-guided optimization
-fprofile-sample-use=<value>
Enable sample-based profile guided optimizations
-fprofile-use=<pathname>
Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
-freciprocal-math Allow division operations to be reassociated
-freg-struct-return Override the default ABI to return small structs in registers
-frelaxed-template-template-args
Enable C++17 relaxed template template argument matching
-freroll-loops Turn on loop reroller
-frtlib-add-rpath Add -rpath with architecture-specific resource directory to the linker flags
-fsanitize-address-field-padding=<value>
Level of field padding for AddressSanitizer
-fsanitize-address-globals-dead-stripping
Enable linker dead stripping of globals in AddressSanitizer
-fsanitize-address-use-after-scope
Enable use-after-scope detection in AddressSanitizer
-fsanitize-blacklist=<value>
Path to blacklist file for sanitizers
-fsanitize-cfi-cross-dso
Enable control flow integrity (CFI) checks for cross-DSO calls.
-fsanitize-coverage=<value>
Specify the type of coverage instrumentation for Sanitizers
-fsanitize-memory-track-origins=<value>
Enable origins tracking in MemorySanitizer
-fsanitize-memory-track-origins
Enable origins tracking in MemorySanitizer
-fsanitize-memory-use-after-dtor
Enable use-after-destroy detection in MemorySanitizer
-fsanitize-recover=<value>
Enable recovery for specified sanitizers
-fsanitize-stats Enable sanitizer statistics gathering.
-fsanitize-thread-atomics
Enable atomic operations instrumentation in ThreadSanitizer (default)
-fsanitize-thread-func-entry-exit
Enable function entry/exit instrumentation in ThreadSanitizer (default)
-fsanitize-thread-memory-access
Enable memory access instrumentation in ThreadSanitizer (default)
-fsanitize-trap=<value> Enable trapping for specified sanitizers
-fsanitize-undefined-strip-path-components=<number>
Strip (or keep only, if negative) a given number of path components when emitting check metadata.
-fsanitize=<check> Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
-fsave-optimization-record
Generate a YAML optimization record file
-fshort-enums Allocate to an enum type only as many bytes as it needs for the declared range of possible values
-fshort-wchar Force wchar_t to be a short unsigned int
-fshow-overloads=<value>
Which overload candidates to show when overload resolution fails: best|all; defaults to all
-fsized-deallocation Enable C++14 sized global deallocation functions
-fsjlj-exceptions Use SjLj style exceptions
-fslp-vectorize Enable the superword-level parallelism vectorization passes
-fsplit-dwarf-inlining Place debug types in their own section (ELF Only)
-fstack-protector-all Force the usage of stack protectors for all functions
-fstack-protector-strong
Use a strong heuristic to apply stack protectors to functions
-fstack-protector Enable stack protectors for functions potentially vulnerable to stack smashing
-fstandalone-debug Emit full debug info for all types used by the program
-fstrict-enums Enable optimizations based on the strict definition of an enum's value range
-fstrict-return Always treat control flow paths that fall off the end of a non-void function as unreachable
-fstrict-vtable-pointers
Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
-fthinlto-index=<value> Perform ThinLTO importing using provided function summary index
-ftrap-function=<value> Issue call to specified function rather than a trap instruction
-ftrapv-handler=<function name>
Specify the function to be called on overflow
-ftrapv Trap on integer overflow
-ftrigraphs Process trigraph sequences
-funique-section-names Use unique names for text and data sections (ELF Only)
-funroll-loops Turn on loop unroller
-fuse-init-array Use .init_array instead of .ctors
-fveclib=<value> Use the given vector functions library
-fvectorize Enable the loop vectorization passes
-fvisibility-inlines-hidden
Give inline C++ member functions default visibility by default
-fvisibility-ms-compat Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
-fvisibility=<value> Set the default symbol visibility for all global declarations
-fwhole-program-vtables Enables whole-program vtable optimization. Requires -flto
-fwrapv Treat signed integer overflow as two's complement
-fwritable-strings Store string literals as writable data
-fxray-always-instrument= <value>
Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
-fxray-instruction-threshold= <value>
Sets the minimum function size to instrument with XRay
-fxray-instrument Generate XRay instrumentation sleds on function entry and exit
-fxray-never-instrument= <value>
Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
-fzvector Enable System z vector language extension
-F <value> Add directory to framework include search path
--gcc-toolchain=<value> Use the gcc toolchain at the given directory
-gcodeview Generate CodeView debug information
-gdwarf-2 Generate source-level debug information with dwarf version 2
-gdwarf-3 Generate source-level debug information with dwarf version 3
-gdwarf-4 Generate source-level debug information with dwarf version 4
-gdwarf-5 Generate source-level debug information with dwarf version 5
-gline-tables-only Emit debug line number tables only
-gmodules Generate debug info with external references to clang modules or precompiled headers
-gz=<value> DWARF debug sections compression type
-gz DWARF debug sections compression type
-G <size> Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
-g Generate source-level debug information
-help Display available options
-H Show header includes and nesting depth
-I- Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
-idirafter <value> Add directory to AFTER include search path
-iframeworkwithsysroot <directory>
Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
-iframework <value> Add directory to SYSTEM framework search path
--ilink-no-cfg Do not use cfg file for Borland linker
-imacros <file> Include macros from file before parsing
-include-pch <file> Include precompiled header file
-include <file> Include file before parsing
-index-header-map Make the next included directory (-I or -F) an indexer header map
-iprefix <dir> Set the -iwithprefix/-iwithprefixbefore prefix
-iquote <directory> Add directory to QUOTE include search path
-isysroot <dir> Set the system root directory (usually /)
-isystem-after <directory>
Add directory to end of the SYSTEM include search path
-isystem <directory> Add directory to SYSTEM include search path
-ivfsoverlay <value> Overlay the virtual filesystem described by file over the real file system
-iwithprefixbefore <dir>
Set directory to include search path with prefix
-iwithprefix <dir> Set directory to SYSTEM include search path with prefix
-iwithsysroot <directory>
Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
-I <dir> Add directory to include search path
--jobs=<N> Perform a parallel compilation with a maximum of <N> processes
-L <dir> Add directory to library search path
-mabicalls Enable SVR4-style position-independent code (Mips only)
-malign-double Align doubles to two words in structs (x86 only)
-mbackchain Link stack frames through backchain on System Z
-mcdecl Make CDecl calling convention the default
-mcrc Allow use of CRC instructions (ARM only)
-MD Write a depfile containing user and system headers
-meabi <value> Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
-mexecute-only Disallow generation of data access to code sections (ARM only)
-mfastcall Make FastCall calling convention the default
-mfentry Insert calls to fentry at function entry (x86 only)
-mfix-cortex-a53-835769 Workaround Cortex-A53 erratum 835769 (AArch64 only)
-mfp32 Use 32-bit floating point registers (MIPS only)
-mfp64 Use 64-bit floating point registers (MIPS only)
-MF <file> Write depfile output from -MMD, -MD, -MM, or -M to <file>
-mgeneral-regs-only Generate code which only uses the general purpose registers (AArch64 only)
-mglobal-merge Enable merging of globals
-MG Add missing headers to depfile
-mhvx-double Enable Hexagon Double Vector eXtensions
-mhvx Enable Hexagon Vector eXtensions
-miamcu Use Intel MCU ABI
--migrate Run the migrator
-mincremental-linker-compatible
(integrated-as) Emit an object file which can be used with an incremental linker
-mindirect-jump=<value> Change indirect jump instructions to inhibit speculation
-mios-version-min=<value>
Set iOS deployment target
-MJ <value> Write a compilation database entry per input
-mllvm <value> Additional arguments to forward to LLVM's option processing
-mlong-calls Generate branches with extended addressability, usually via indirect jumps.
-mmacosx-version-min=<value>
Set Mac OS X deployment target
-mmadd4 Enable the generation of 4-operand madd.s, madd.d and related instructions.
-MMD Write a depfile containing user headers
-mms-bitfields Set the default structure layout to be compatible with the Microsoft compiler standard
-mmsa Enable MSA ASE (MIPS only)
-mmt Enable MT ASE (MIPS only)
-MM Like -MMD, but also implies -E and writes to stdout by default
-mno-abicalls Disable SVR4-style position-independent code (Mips only)
-mno-cdecl Do not make CDecl calling convention the default
-mno-execute-only Allow generation of data access to code sections (ARM only)
-mno-fastcall Do not make FastCall calling convention the default
-mno-fix-cortex-a53-835769
Don't workaround Cortex-A53 erratum 835769 (AArch64 only)
-mno-global-merge Disable merging of globals
-mno-hvx-double Disable Hexagon Double Vector eXtensions
-mno-hvx Disable Hexagon Vector eXtensions
-mno-implicit-float Don't generate implicit floating point instructions
-mno-incremental-linker-compatible
(integrated-as) Emit an object file which cannot be used with an incremental linker
-mno-long-calls Restore the default behaviour of not generating long calls
-mno-madd4 Disable the generation of 4-operand madd.s, madd.d and related instructions.
-mno-movt Disallow use of movt/movw pairs (ARM only)
-mno-ms-bitfields Do not set the default structure layout to be compatible with the Microsoft compiler standard
-mno-msa Disable MSA ASE (MIPS only)
-mno-mt Disable MT ASE (MIPS only)
-mno-neg-immediates Disallow converting instructions with negative immediates to their negation or inversion.
-mno-restrict-it Allow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode
-mno-stdcall Do not make StdCall calling convention the default
-mno-unaligned-access Force all memory accesses to be aligned (AArch32/AArch64 only)
-mnocrc Disallow use of CRC instructions (ARM only)
-module-dependency-dir <value>
Directory to dump module dependencies to
-module-file-info Provide information about a particular module file
-momit-leaf-frame-pointer
Omit frame pointer setup for leaf functions
-mpie-copy-relocations Use copy relocations support for PIE builds
-MP Create phony target for each dependency (other than main file)
-mqdsp6-compat Enable hexagon-qdsp6 backward compatibility
-MQ <value> Specify name of main file output to quote in depfile
-mrelax-all (integrated-as) Relax all machine instructions
-mrestrict-it Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
-mrtd Make StdCall calling convention the default
-msoft-float Use software floating point
-mstack-alignment=<value>
Set the stack alignment
-mstack-probe-size=<value>
Set the stack probe size
-mstackrealign Force realign the stack at entry to every function
-mstdcall Make StdCall calling convention the default
-mthread-model <value> The thread model to use, e.g. posix, single (posix by default)
-MT <value> Specify name of main file output in depfile
-munaligned-access Allow memory accesses to be unaligned (AArch32/AArch64 only)
-MV Use NMake/Jom format for the depfile
-M Like -MD, but also implies -E and writes to stdout by default
--no-cuda-gpu-arch=<value>
Remove GPU architecture (e.g. sm_35) from the list of GPUs to compile for. 'all' resets the list to its default value.
--no-cuda-version-check Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.
--no-system-header-prefix=<prefix>
Treat all #include paths starting with <prefix> as not including a system header.
-nobuiltininc Disable builtin #include directories
-nostdinc++ Disable standard #include directories for the C++ standard library
-ObjC++ Treat source input files as Objective-C++ inputs
-objcmt-atomic-property Make migration to 'atomic' properties
-objcmt-migrate-all Enable migration to modern ObjC
-objcmt-migrate-annotation
Enable migration to property and method annotations
-objcmt-migrate-designated-init
Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods
-objcmt-migrate-instancetype
Enable migration to infer instancetype for method result type
-objcmt-migrate-literals
Enable migration to modern ObjC literals
-objcmt-migrate-ns-macros
Enable migration to NS_ENUM/NS_OPTIONS macros
-objcmt-migrate-property-dot-syntax
Enable migration of setter/getter messages to property-dot syntax
-objcmt-migrate-property
Enable migration to modern ObjC property
-objcmt-migrate-protocol-conformance
Enable migration to add protocol conformance on classes
-objcmt-migrate-readonly-property
Enable migration to modern ObjC readonly property
-objcmt-migrate-readwrite-property
Enable migration to modern ObjC readwrite property
-objcmt-migrate-subscripting
Enable migration to modern ObjC subscripting
-objcmt-ns-nonatomic-iosonly
Enable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute
-objcmt-returns-innerpointer-property
Enable migration to annotate property with NS_RETURNS_INNER_POINTER
-objcmt-whitelist-dir-path=<value>
Only modify files with a filename contained in the provided directory path
-ObjC Treat source input files as Objective-C inputs
-output-dir <directory> Write object files to <directory>
-o <file> Write output to <file>
-PC<N> (deprecated, use --jobs=<N> instead) Perform a parallel compilation with a maximum of <N> processes
-pg Enable mcount instrumentation
-pipe Use pipes between commands, when possible
--precompile Only precompile the input
-print-file-name=<file> Print the full library path of <file>
-print-ivar-layout Enable Objective-C Ivar layout bitmap print trace
-print-libgcc-file-name Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang_rt.builtins.*.a")
-print-prog-name=<name> Print the full program path of <name>
-print-resource-dir Print the resource directory pathname
-print-search-dirs Print the paths used for finding libraries and programs
-pthread Support POSIX threads in generated code
--ptxas-path=<value> Path to ptxas (used for compiling CUDA code)
-P Disable linemarker output in -E mode
-Qunused-arguments Don't emit warning for unused driver arguments
-q Suppress compiler identification banner
-relocatable-pch Whether to build a relocatable precompiled header
-rewrite-legacy-objc Rewrite Legacy Objective-C source to C++
-rewrite-objc Rewrite Objective-C source to C++
-Rpass-analysis=<value> Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
-Rpass-missed=<value> Report missed transformations by optimization passes whose name matches the given POSIX regular expression
-Rpass=<value> Report transformations performed by optimization passes whose name matches the given POSIX regular expression
-rtlib=<value> Compiler runtime library to use
-R<remark> Enable the specified remark
-save-stats=<value> Save llvm statistics.
-save-stats Save llvm statistics.
-save-temps=<value> Save intermediate compilation results.
-save-temps Save intermediate compilation results
-serialize-diagnostics <value>
Serialize compiler diagnostics to a file
-std=<value> Language standard to compile for
-stdlib=<value> C++ standard library to use
--system-header-prefix=<prefix>
Treat all #include paths starting with <prefix> as including a system header.
-S Only run preprocess and compilation steps
--target=<value> Generate code for the given target
-Tbss <addr> Set starting address of BSS to <addr>
-Tdata <addr> Set starting address of BSS to <addr>
-time Time individual commands
-traditional-cpp Enable some traditional CPP emulation
-trigraphs Process trigraph sequences
-Ttext <addr> Set starting address of BSS to <addr>
-T <script> Specify <script> as linker script
-t<value> Specify Borland target executable
-undef undef all system defines
-U <macro> Undefine macro <macro>
--verify-debug-info Verify the binary representation of debug output
-verify-pch Load and verify that a pre-compiled header file is not stale
-v Show commands to run and use verbose output
-Wa,<arg> Pass the comma separated arguments in <arg> to the assembler
-Wdeprecated Enable warnings for deprecated constructs and define __DEPRECATED
-Wl,<arg> Pass the comma separated arguments in <arg> to the linker
-working-directory <value>
Resolve file paths relative to the specified directory
-Wp,<arg> Pass the comma separated arguments in <arg> to the preprocessor
-W<warning> Enable the specified warning
-w Suppress all warnings
-Xanalyzer <arg> Pass <arg> to the static analyzer
-Xassembler <arg> Pass <arg> to the assembler
-Xclang <arg> Pass <arg> to the clang compiler
-Xcuda-fatbinary <arg> Pass <arg> to fatbinary invocation
-Xcuda-ptxas <arg> Pass <arg> to the ptxas assembler
-Xdriver <arg> Pass <arg> directly to the clang compiler
-Xlinker <arg> Pass <arg> to the linker
-Xpreprocessor <arg> Pass <arg> to the preprocessor
-x <language> Treat subsequent input files as having type <language>
-z <arg> Pass -z <arg> to the linker
+<arg> Load user specified configuration file
The executable BCompareLite.exe in your Embarcadero RAD Studio 13
Architect installation is the "Lite" version of Beyond Compare,
a popular data management and comparison utility developed by Scooter Software.
💻 Functionality
Summary
Beyond Compare is designed to help users quickly and easily compare,
merge, and synchronize different types of data.
The "Lite" version included with RAD Studio Architect editions
is a slightly reduced version of the full Beyond Compare product, but still
provides powerful comparison and merging capabilities tailored for developers.
🛠️ Usage: IDE
Integration vs. Standalone
The application is not strictly used by the Delphi IDE; it can be
used as a standalone application.
The inclusion of Beyond Compare Lite within the Architect edition of RAD
Studio highlights its value as a powerful, dedicated tool for the specific
comparison and merging tasks common to software development.
Executable: BDSFileCopyHelper.exe
Installed with: Embarcadero RAD Studio 13 Architect
Location: <RAD Studio Install Dir>\bin\BDSFileCopyHelper.exe
Summary / Description
BDSFileCopyHelper.exe is a support utility used internally by the RAD Studio IDE
(including Delphi and C++Builder) to handle file copy operations that
require elevated privileges or must be performed outside the IDE process
context.
Its main roles typically include:
Intended Usage
In Short
Executable: bdsreg.exe
Location: Embarcadero RAD Studio 13 Architect → bin directory
Summary / Functionality
bdsreg.exe is the RAD Studio registration and licensing utility. It is
primarily used by the Delphi/C++Builder IDE (BDS – Borland Developer Studio,
the historical internal name of the IDE) to manage license registration,
activation, and configuration of Embarcadero products.
This tool handles:
It is a backend component used during installation, first launch of the
IDE, or when license validation fails or changes (e.g., after hardware
modifications).
Usage Context
·
bdsreg.exe -h
·
bdsreg.exe --import license.slip
·
bdsreg.exe --export license.slip
·
bdsreg.exe --register serialnumber email
password
·
bdsreg.exe --check
(Exact parameters may vary slightly by RAD Studio version.)
This allows administrators to automate registration or activation in
environments where multiple seats or offline machines are managed.
Typical Use Cases
Conclusion
bdsreg.exe is a core registration utility that the Delphi/C++Builder IDE
relies on for license handling.
While it is integrated with the IDE and installer, it can also be run
independently from the command line for license administration or
automation purposes — typically by IT administrators or power users.
BDSSetLang.exe is a utility included with Embarcadero RAD Studio 13 Architect that manages language localization settings for the IDE (the “BDS” — Borland Developer Studio — core).
🔍 Summary of
Functionality:
Examples:
🧭 In short:
BDSSetLang.exe configures which language the RAD Studio IDE uses for menus, dialogs, and messages by setting the active language resource files. It’s part of RAD Studio’s multilingual support system, not used for compiling or debugging code.
RAD Studio language configuration tool
Copyright (c) 2025 Embarcadero Technologies, Inc.
Syntax: BDSSetLang [options] [New UI Language]
Options:
/I : GUI mode
/? : Help message
This tool will modify the following directory and application:
C:\Program Files (x86)\Embarcadero\Studio\37.0\bin\
You can select the following language:
DE
EN
FR
JA
Bitmap
Style Designer (BitmapStyleDesigner.exe) is a utility included with Embarcadero RAD Studio
(including Delphi and C++Builder) that allows developers to create, edit, and
manage bitmap-based
visual styles
for FireMonkey (FMX) applications.
Key Functionality:
Standalone vs. IDE
Integration:
Typical Use Case:
A FireMonkey developer designing a custom UI theme for a
mobile or desktop app might use Bitmap Style Designer to define how every
control should look using custom graphics, then embed that style into the
application and activate it at runtime using TStyleManager.
Supported Platforms:
Primarily
used for FireMonkey (FMX) applications targeting Windows,
macOS, iOS, and Android. It is not used for VCL applications, which rely on different theming mechanisms.
In
summary, Bitmap
Style Designer is both a standalone tool and an IDE-integrated utility for crafting bitmap-driven
visual styles in FireMonkey applications.
Description of brcc32.exe
brcc32.exe is the Borland Resource Compiler, a command-line utility included in Embarcadero RAD Studio (including Delphi and C++ Builder). Its primary function is to compile Windows resource script files (.rc files) into binary resource files (.res files). These .res files contain resources like icons, bitmaps, dialogs, menus, strings, and version information, which are then linked into executable programs during the build process.
Key features and functionality:
This tool is essential for embedding non-code assets into applications built with RAD Studio, ensuring resources are properly compiled and linked.
Standalone Usage
brcc32.exe is not strictly limited to the Delphi IDE or RAD Studio environment—it can be used as a standalone command-line application. While the IDE automatically invokes it during project builds (e.g., when compiling Delphi or C++ projects with resource files), you can run it manually from the command prompt or scripts outside the IDE.
For detailed command-line help, run brcc32.exe without arguments in a command prompt. If you encounter issues, refer to Embarcadero's documentation or community forums for RAD Studio-specific guidance.
Borland Resource Compiler Version 5.40 Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved. Syntax: brcc32 [options ...] filename options marked with a '*' are on by default @<filename> Take instructions from command file -r (ignored for compatibility) -16 Build 16-bit Windows compatible .res file -32 * Build 32-bit Windows compatible .res file -fofilename Set output filename -v Verbose -ipath Set include path -dname[=string] Define #define -x Ignore INCLUDE environment variable -m Enable multi-byte character support -cdddd set default code page to nnnn -lxxxx set default language to xxxx -31 Provided for downward compatibility (build 16-bit .res file) -w32 Provided for downward compatibility (build 16-bit .res file) -? or -h Display this message
Functionality of cgconfig.exe
cgconfig.exe is a configuration utility bundled with Embarcadero RAD Studio
installations, specifically designed for managing settings related to CodeGuard, which is a runtime error detection and
debugging tool primarily used in C++Builder projects (part of RAD Studio). CodeGuard helps identify issues like memory leaks,
uninitialized variables, and other runtime errors by instrumenting your
compiled code.
Key features and configuration options accessible via cgconfig.exe
include:
When launched, it opens a graphical dialog with tabs for these
categories, making it straightforward to tweak behaviors without deep
command-line knowledge.
Usage: IDE-Integrated or Standalone?
While cgconfig.exe is often invoked from within the RAD Studio IDE (e.g.,
via the Tools menu under CodeGuard options for active
projects), it is fully standalone. You can run it directly from the
command line or by double-clicking the executable in the bin directory (e.g.,
C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\cgconfig.exe
for RAD Studio 13). This allows configuration of CodeGuard
settings for any compatible C++ project, even outside the IDE—ideal for
command-line builds, scripts, or third-party workflows. No IDE dependencies are
required to launch or use it.
For the most up-to-date details in RAD Studio 13 (Athens), refer to the
official Embarcadero documentation, as core functionality remains consistent
across versions.
Functionality Summary of cgrc.exe
cgrc.exe is the CodeGear Resource Compiler, a command-line utility included with Embarcadero RAD Studio (including version 13 Athens/Architect edition). It is designed to compile Windows resource definition files (.rc scripts) into binary resource files (.res format). These compiled resources can then be embedded into Delphi, C++Builder, or cross-platform applications during the build process.
Key Features and Usage:
In essence, it's a build-time tool that ensures resources are correctly formatted and linked, preventing runtime issues like missing icons or untranslated strings.
Standalone vs. IDE Usage:
text
cgrc.exe -fo MyResources.res MyResources.rc
If you're encountering issues or need help with specific options/flags, check the RAD Studio documentation (Help > RAD Studio Help > Building > Resources) or run cgrc.exe /? for built-in help. For advanced scripting, it's often paired with tools like dcc32.exe (Delphi compiler) in automated workflows.
CodeGear Resource Compiler/Binder Version 1.2.3 Copyright (c) 2008-2025 Embarcadero Technologies Inc. Syntax: cgrc [options ...] filename options marked with a '*' are on by default -r compile only. Do not bind resources -fofilename set output res filename -fefilename set output exe filename -v verbose -ipath set include path -x ignore INCLUDE environment variable -dname[=string] define #define -Vd.d mark .exe file with Windows version (4.0 default) -cdddd set default code page to nnnn -lxxxx set default language to xxxx -m enable multi-byte character support -? or -h show this help
clang-format.exe in Embarcadero RAD Studio 13 Architect is a source code formatting tool that automatically reformats C, C++, Objective-C, and Delphi (partially) source files according to predefined or user-defined style rules.
Here’s a summary of its functionality:
🧭 Purpose
clang-format.exe is part of the LLVM/Clang toolchain integrated into RAD Studio. Its main job is to enforce consistent code style across projects by reformatting code based on style configuration files (like .clang-format).
⚙️ Key Functions
(-i tells it to edit files in place.)
🧩 Common Usage in RAD
Studio
💡 Example
If you have a .clang-format file with:
BasedOnStyle: Google
IndentWidth: 4
ColumnLimit: 100
then running:
clang-format.exe -i myfile.cpp
will reformat myfile.cpp according to those style rules.
OVERVIEW: A tool to format C/C++/Java/JavaScript/Objective-C/Protobuf/C# code.
If no arguments are specified, it formats the code from standard input
and writes the result to the standard output.
If <file>s are given, it reformats the files. If -i is specified
together with <file>s, the files are edited in-place. Otherwise, the
result is written to the standard output.
USAGE: clang-format.exe [options] [<file> ...]
OPTIONS:
--Werror - If set, changes formatting warnings to errors
--Wno-error=<value> - If set don't error out on the specified warning type.
=unknown - If set, unknown format options are only warned about.
This can be used to enable formatting, even if the
configuration contains unknown (newer) options.
Use with caution, as this might lead to dramatically
differing format depending on an option being
supported or not.
--assume-filename=<string> - Override filename used to determine the language.
When reading from stdin, clang-format assumes this
filename to determine the language.
--cursor=<uint> - The position of the cursor when invoking
clang-format from an editor integration
--dry-run - If set, do not actually make the formatting changes
--dump-config - Dump configuration options to stdout and exit.
Can be used with -style option.
--fallback-style=<string> - The name of the predefined style used as a
fallback in case clang-format is invoked with
-style=file, but can not find the .clang-format
file to use.
Use -fallback-style=none to skip formatting.
--ferror-limit=<uint> - Set the maximum number of clang-format errors to emit before stopping (0 = no limit). Used only with --dry-run or -n
--help - Display available options (--help-hidden for more)
-i - Inplace edit <file>s, if specified.
--length=<uint> - Format a range of this length (in bytes).
Multiple ranges can be formatted by specifying
several -offset and -length pairs.
When only a single -offset is specified without
-length, clang-format will format up to the end
of the file.
Can only be used with one input file.
--lines=<string> - <start line>:<end line> - format a range of
lines (both 1-based).
Multiple ranges can be formatted by specifying
several -lines arguments.
Can't be used with -offset and -length.
Can only be used with one input file.
-n - Alias for --dry-run
--offset=<uint> - Format a range starting at this byte offset.
Multiple ranges can be formatted by specifying
several -offset and -length pairs.
Can only be used with one input file.
--output-replacements-xml - Output replacements as XML.
--sort-includes - If set, overrides the include sorting behavior determined by the SortIncludes style flag
--style=<string> - Coding style, currently supports:
LLVM, GNU, Google, Chromium, Microsoft, Mozilla, WebKit.
Use -style=file to load style configuration from
.clang-format file located in one of the parent
directories of the source file (or current
directory for stdin).
Use -style="{key: value, ...}" to set specific
parameters, e.g.:
-style="{BasedOnStyle: llvm, IndentWidth: 8}"
--verbose - If set, shows the list of processed files
--version - Display the version of this program
The executable coff2omf.exe in Embarcadero RAD Studio 13 Architect is a converter utility that transforms object files from the COFF (Common Object File Format) format into the OMF (Object Module Format).
Here’s what that means in context:
Primary purpose:
coff2omf.exe allows developers to use object files produced by COFF-based tools
or libraries in the RAD Studio build process by converting them into OMF
format, which can then be linked into Delphi or C++Builder projects.
Essentially, it’s a bridge between modern object files and RAD Studio’s traditional linker expectations.
COFF to OMF Converter Version 1.3.0 Copyright (c) 1999-2021 Embarcadero Technologies, Inc.
All rights reserved.
Syntax: COFF2OMF [options] InputFile OutputFile
-h, -? Display help
-h2 Display extra help
-q Quiet mode
-v Verbose mode
-r Remove (delete) output file if empty
-lib:xx Specify options for OMF import library generation:
ms - Allow entries that have MS C++ name mangling (default: no)
st - Normalize names instead of aliasing MS stdcall mangling
ca - Don't perform MS cdecl aliasing (default is to alias)
COFF2OMF will convert a COFF import library file (InputFile)
to the corresponding OMF type import library file (OutputFile).
convert.exe is a command-line utility included with
Embarcadero RAD Studio (and its predecessors like Delphi and C++Builder) for
converting Delphi Form (DFM) files between binary and text (ASCII) formats. DFM
files store the visual layout, properties, and components of forms in
Delphi/C++Builder applications. Binary DFMs are the default compact format
since early Delphi versions, but text DFMs offer better readability, version
control compatibility (e.g., with tools like Git), and easier manual editing.
The tool supports bidirectional conversion:
Key Features and Usage
This application is not strictly tied to the Delphi IDE—it
operates fully standalone and has been a core utility since Delphi 1 for
developers working outside the IDE environment, such as in build scripts or
version control workflows. The IDE itself can also invoke it indirectly (e.g.,
via options to save forms as text), but direct command-line use is common and
recommended for automation.
convert.exe – Complete Command-Line Reference (Embarcadero RAD Studio 13 Architect – bin\convert.exe) Official Syntax text convert.exe [options] <filename> <filename> – Path to the .dfm, .fmx, or .dfm (binary) file to convert. Wildcards are not supported natively, but you can script batch processing. Full List of Supported Command-Line Switches Switch Alias Description Example -t <format> -target <format> Explicitly specify output format. Valid values: text or binary convert.exe -t text MyForm.dfm -i -inplace Overwrite the input file with the converted result (no backup created). convert.exe -i MyForm.dfm -b -backup Create a backup of the original file before overwriting (*.bak). Only works with -i. convert.exe -i -b MyForm.dfm -d -depend Process dependent form files (e.g., inherited forms referenced via inherited or object in DFM). Recursively converts all linked DFMs in the same directory. convert.exe -d MainForm.dfm -s -silent Suppress all console output (useful in build scripts). convert.exe -s MyForm.dfm -v -verbose Verbose mode – prints detailed conversion steps and warnings. convert.exe -v MyForm.dfm -p <path> -path <path> Search path for dependent .dfm files when using -d. Multiple paths separated by semicolon (;). convert.exe -d -p "..\Forms;..\Common" MainForm.dfm -e <ext> -extension <ext> Change the output file extension (default: .dfm for both). Useful when converting FMX to DFM or vice versa. convert.exe -t text -e .txt MyForm.dfm -u -unicode Force Unicode (UTF-8) text output (default in RAD Studio 10.4+). Use -u- to force ANSI. convert.exe -u MyForm.dfm -h -?, --help Display help / usage screen. convert.exe -h Auto-Detect Behavior (No -t switch) If no -t option is provided: * Binary ? Text: If input file is binary DFM/FMX. * Text ? Binary: If input file is text DFM/FMX. This is the most common usage: convert.exe MyForm.dfm ? toggles format in-place (with backup if -b used). Exit Codes Code Meaning 0 Success 1 Invalid argument 2 File not found 3 Read/write error 4 Conversion failed (corrupted DFM) 5 Dependent form not found (with -d) Practical Examples cmd :: 1. Convert binary DFM to text (default behavior) convert.exe Unit1.dfm :: 2. Convert text DFM back to binary, overwrite with backup convert.exe -i -b -t binary Unit1.dfm :: 3. Recursively convert all inherited forms in project convert.exe -d -p "Forms;Common" MainForm.dfm :: 4. Silent batch conversion in build script convert.exe -s -i -b *.dfm Notes * No GUI – purely command-line. * Works standalone – does not require the RAD Studio IDE to be running. * Fully supported in build automation (MSBuild, FinalBuilder, CMake, etc.). * Handles DFM, FMX, and legacy DFM (binary) formats. * Since RAD Studio 10.4 Sydney, UTF-8 is the default text encoding.
Description of cpp32.exe
cpp32.exe is a command-line tool included in Embarcadero RAD
Studio (specifically in versions like 13 Architect), serving as the C++
preprocessor for 32-bit targets. Its primary function is to process C++ source
code files before compilation, handling preprocessor directives such as #include, #define, #ifdef, #endif,
and macro expansions. This preprocessing step resolves includes, defines
constants, and conditionally compiles code, outputting a modified source file
(typically with a .i extension)
that can then be fed into the actual compiler (like bcc32.exe). It supports
standard C++ preprocessor syntax and is optimized for the Embarcadero
C++Builder toolchain, ensuring compatibility with RAD Studio's build system.
Standalone Usage
cpp32.exe is not strictly limited to use within the RAD
Studio IDE (which includes both Delphi and C++Builder environments). While it
integrates seamlessly with the IDE for automated builds and debugging, it can
be invoked as a standalone command-line application. For example, you can run
it from a terminal or batch script outside the IDE to preprocess individual
files or integrate it into custom build pipelines. Usage typically involves
commands like:
Copy code
cpp32.exe [options] input_file.cpp
Common options include -I for include
paths, -D for defines, and -o for output
files. This flexibility makes it useful for developers who need manual
preprocessing or scripting in non-IDE workflows, though it requires the RAD
Studio environment to be installed for access to its dependencies and
libraries. Note that it's specific to 32-bit C++ development and may not handle
all modern C++ standards without additional flags or updates in newer RAD
Studio versions. For full documentation, refer to Embarcadero's official RAD
Studio help or command-line reference.
Embarcadero C++ Win32 Preprocessor 7.60 Copyright (c) 1993-2023 Embarcadero Technologies, Inc.
Available options (* = default setting, xxx = has sub-options: use -h -X):
(Note: -X- or -w-XXX will usually undo whatever was set or unset by -X or -wXXX.
If two options conflict, the last one specified will be used.)
--sysroot Sets the logical root directory for headers, libraries and frameworks
(Paths specified in --sysinc or --syslib and those in -F that begin
with '/' are prefixed with this value)
--sysinc Set the system include file search path
(if specified, sysroot will be prepended)
--syslib Set the system library file search path
(if specified, sysroot will be prepended)
--savemem Set maximum SAVEMEM memory (in Mb)
(This is the contiguous memory allocated to store global symbols and
similar constructs. Pre-compiled headers use this memory)
--version Show compiler version
--replacehdr Replace header name (e.g. --replaceHeader=a.h=b.h)
--xrtti Generate extended rtti information
-3 Generate 80386 protected-mode compatible instructions
-4 Generate 80386/80486 protected-mode compatible instructions
-5 Generate Pentium instructions
-6 Generate Pentium Pro instructions
-Axxx Enable ANSI conformance
-Cxxx Enable nested comments
-D -D<name> defines 'name' as a null string, or use -D<name>=<value>
-E Specify which assembler to use
-G Optimize for size/speed; use -O1 and -O2 instead
-Hi Include the contents of header file: -Histdio.h
-Hp Print headers as they are included
-I Set the include file search path
-K Set default character type to unsigned
-L Library file search path
-M Create a linker map file
-N Hodgepodge of miscellanity (see -h -N)
-Nd Macros get a value of "1" by default (-DX => -DX=1)
-Nt GNU __typeof(var) support
-Nv Allow void& as a valid type
-O Optimize jumps
-P Perform C++ compile regardless of source extension
-Q Extended compiler error information
-Rxxx Include browser information in generated .OBJ files
-S Control output format; see user documentation
-T Specify assembler option, e.g. -Tx
-U Undefine any previous definitions of name
-Vxxx Compatibility options
-W Target is a Windows application
-X Disable compiler autodependency output
-Zd Output global defs as DocBook specs; to specify: -Zd=<file>.c
-Zn Disable and/or don't define CodeGear builtins
-Zx Output global definitions to XML file.
Sub Options:
-Zx=<filename> Emit only types/declarations in <filename>
-Zxf[=filename] Skip base type members
-Zxm[=filename] Emit macros
-Zxp[=filename] Emit file & line position
-axxx Set data alignment boundary. Default is -a8; -a- means -a1
-b Enable -bi and treat enums as ints from a typechecking point of view
* -bi Make sizeof(enum x) == sizeof(int) unless explicitly stated otherwise
-c Compile to object file only, do not link
-d Merge duplicate strings
-dc Put strings into the read-only data segment
-dw Put strings into the (writeable) data segment
-e Specify target executable pathname
-g Stop batch compilation after n warnings (Default = 255)
-h Request help ('-h -' shows all help). Can be specific: -h -V
-i Set maximum significant identifier length (Default = 250)
-j Stop batch compilation after n errors (Default = 50)
* -k Generate standard stack frames
-l Pass options to the linker; example: -ls -l-x
-m Generate makefile dependency information
-md Put dependency info in .d files, not in the object file
-mm Ignore system header files while generating dependency info
-mo Specify the output file for dependency info
-n Set output directory for object files
-o Set output filename (-o<filename> or -o <filename> supported)
-pxxx Use Pascal calling convention
-q Suppress compiler identification banner
-r Use register variables
-rd Use register variables only when register keyword is employed
-s Link using the system's non-incremental linker
-t Specify target executable
* -u Generate underscores on symbol names
-vxxx Turn on source debugging
-w Display all warnings
-w! Return non-zero from compiler on warnings
-xxxx Enable exception handling
-y Debug line numbers on
-z Options for redefining standard segment names
Use '-h <OPT>' for help on a specific option, or
'-h -' to see all available options.
Functionality of cpp32c.exe
cpp32c.exe is the C++ Preprocessor for the 32-bit Windows platform within C++Builder (part of RAD Studio).
💻 Standalone vs. IDE Use
The application can be used as a standalone command-line application.
In summary, while it is primarily an integral tool in the C++Builder compiler toolchain for 32-bit Windows, its design as a command-line executable allows it to be used independently of the Delphi IDE for pre-processing tasks.
Embarcadero C++ Win32 Preprocessor 7.60 Copyright (c) 2012-2023 Embarcadero Technologies, Inc.
OVERVIEW: Embarcadero C/C++ preprocessor driver for Win32
USAGE: cpp32c.exe [options] <inputs>
OPTIONS:
-### Print (but do not run) the commands to run for this compilation
--analyzer-output <value>
Static analyzer report output format (html|plist|plist-multi-file|plist-html|text).
--analyze Run the static analyzer
-arcmt-migrate-emit-errors
Emit ARC errors even if the migrator can fix them
-arcmt-migrate-report-output <value>
Output path for the plist report
-B <dir> Add <dir> to search path for binaries and object files used implicitly
-CC Include comments from within macros in preprocessed output
-cl-denorms-are-zero OpenCL only. Allow denormals to be flushed to zero.
-cl-fast-relaxed-math OpenCL only. Sets -cl-finite-math-only and -cl-unsafe-math-optimizations, and defines __FAST_RELAXED_MATH__.
-cl-finite-math-only OpenCL only. Allow floating-point optimizations that assume arguments and results are not NaNs or +-Inf.
-cl-fp32-correctly-rounded-divide-sqrt
OpenCL only. Specify that single precision floating-point divide and sqrt used in the program source are correctly rounded.
-cl-kernel-arg-info OpenCL only. Generate kernel argument metadata.
-cl-mad-enable OpenCL only. Allow use of less precise MAD computations in the generated binary.
-cl-no-signed-zeros OpenCL only. Allow use of less precise no signed zeros computations in the generated binary.
-cl-opt-disable OpenCL only. This option disables all optimizations. By default optimizations are enabled.
-cl-single-precision-constant
OpenCL only. Treat double precision floating-point constant as single precision constant.
-cl-std=<value> OpenCL language standard to compile for.
-cl-strict-aliasing OpenCL only. This option is added for compatibility with OpenCL 1.0.
-cl-unsafe-math-optimizations
OpenCL only. Allow unsafe floating-point optimizations. Also implies -cl-no-signed-zeros and -cl-mad-enable.
--cuda-compile-host-device
Compile CUDA code for both host and device (default). Has no effect on non-CUDA compilations.
--cuda-device-only Compile CUDA code for device only
--cuda-gpu-arch=<value> CUDA GPU architecture (e.g. sm_35). May be specified more than once.
--cuda-host-only Compile CUDA code for host only. Has no effect on non-CUDA compilations.
--cuda-noopt-device-debug
Enable device-side debug info generation. Disables ptxas optimizations.
--cuda-path=<value> CUDA installation path
-cxx-isystem <directory>
Add directory to the C++ SYSTEM include search path
-C Include comments in preprocessed output
-c Only run preprocess, compile, and assemble steps
-dD Print macro definitions in -E mode in addition to normal output
-dependency-dot <value> Filename to write DOT-formatted header dependencies to
-dependency-file <value>
Filename (or -) to write dependency output to
-dI Print include directives in -E mode in addition to normal output
-dM Print macro definitions in -E mode instead of normal output
-dwo-dir <directory> Write dwo files to <directory>
-D <macro>=<value> Define <macro> to <value> (or 1 if <value> omitted)
-emit-ast Emit Clang AST files for source inputs
-emit-llvm Use the LLVM representation for assembler and object files
-external-linker <arg> Select <arg> as external linker
-E Only run the preprocessor
-faligned-allocation Enable C++17 aligned allocation functions
-fallow-editor-placeholders
Treat editor placeholders as valid source code
-fansi-escape-codes Use ANSI escape codes for diagnostics
-fapple-kext Use Apple's kernel extensions ABI
-fapple-pragma-pack Enable Apple gcc-compatible #pragma pack handling
-fapplication-extension Restrict code to those available for App Extensions
-fblocks Enable the 'blocks' language feature
-fborland-define-external-types
Generate definitions for external debug types into PCH file
-fborland-extensions Accept non-standard constructs supported by the Borland compiler
-fborland-use-external-types
Generate references to external debug types from PCH file
-fborland-xrtti Enable extended RTTI information for Delphi style classes
-fbuild-session-file=<file>
Use the last modification time of <file> as the build session timestamp
-fbuild-session-timestamp=<time since Epoch in seconds>
Time when the current build session started
-fbuiltin-module-map Load the clang builtins module map file.
-fclang-abi-compat=<version>
Attempt to match the ABI of Clang <version>
-fcolor-diagnostics Use colors in diagnostics
-fcomment-block-commands=<arg>
Treat each comma separated argument in <arg> as a documentation comment block command
-fcoroutines-ts Enable support for the C++ Coroutines TS
-fcoverage-mapping Generate coverage mapping to enable code coverage analysis
-fcuda-approx-transcendentals
Use approximate transcendental functions
-fcuda-flush-denormals-to-zero
Flush denormal floating point values to zero in CUDA device mode.
-fcxx-exceptions Enable C++ exceptions
-fdata-sections Place each data in its own section (ELF Only)
-fdebug-info-for-profiling
Emit extra debug info to make sample profile more accurate.
-fdebug-macro Emit macro debug information
-fdebug-prefix-map=<value>
remap file source paths in debug info
-fdebug-types-section Place debug types in their own section (ELF Only)
-fdeclspec Allow __declspec as a keyword
-fdelayed-template-parsing
Parse templated function definitions at the end of the translation unit
-fdiagnostics-absolute-paths
Print absolute paths in diagnostics
-fdiagnostics-hotness-threshold=<number>
Prevent optimization remarks from being output if they do not have at least this profile count
-fdiagnostics-parseable-fixits
Print fix-its in machine parseable form
-fdiagnostics-print-source-range-info
Print source range spans in numeric form
-fdiagnostics-show-hotness
Enable profile hotness information in diagnostic line
-fdiagnostics-show-note-include-stack
Display include stacks for diagnostic notes
-fdiagnostics-show-option
Print option name with mappable diagnostics
-fdiagnostics-show-template-tree
Print a template comparison tree for differing templates
-fdollars-in-identifiers
Allow '$' in identifiers
-fembed-bitcode-marker Embed placeholder LLVM IR data as a marker
-fembed-bitcode= Embed LLVM bitcode (option: off, all, bitcode, marker)
-fembed-bitcode Embed LLVM IR bitcode as data
-femit-all-decls Emit all declarations, even if unused
-femulated-tls Use emutls functions to access thread_local variables
-fexceptions Enable support for exception handling
-fexperimental-new-pass-manager
Enables an experimental new pass manager in LLVM.
-ffast-math Allow aggressive, lossy floating-point optimizations
-ffixed-r9 Reserve the r9 register (ARM only)
-ffixed-x18 Reserve the x18 register (AArch64 only)
-ffp-contract=<value> Form fused FP ops (e.g. FMAs): fast (everywhere) | on (according to FP_CONTRACT pragma, default) | off (never fuse)
-ffreestanding Assert that the compilation takes place in a freestanding environment
-ffunction-sections Place each function in its own section (ELF Only)
-fgnu-keywords Allow GNU-extension keywords regardless of language standard
-fgnu-runtime Generate output compatible with the standard GNU Objective-C runtime
-fgnu89-inline Use the gnu89 inline semantics
-fimplicit-module-maps Implicitly search the file system for module map files.
-finline-functions Inline suitable functions
-finline-hint-functions Inline functions which are (explicitly or implicitly) marked inline
-finstrument-functions Generate calls to instrument function entry and exit
-fintegrated-as Enable the integrated assembler
-flto-jobs=<value> Controls the backend parallelism of -flto=thin (default of 0 means the number of threads will be derived from the number of CPUs detected)
-flto=<value> Set LTO mode to either 'full' or 'thin'
-flto Enable LTO in 'full' mode
-fmath-errno Require math functions to indicate errors by setting errno
-fmax-type-align=<value>
Specify the maximum alignment to enforce on pointers lacking an explicit alignment
-fmodule-file=<file> Load this precompiled module file
-fmodule-map-file=<file>
Load this module map file
-fmodule-name=<name> Specify the name of the module to build
-fmodules-cache-path=<directory>
Specify the module cache path
-fmodules-decluse Require declaration of modules used within a module
-fmodules-disable-diagnostic-validation
Disable validation of the diagnostic options when loading the module
-fmodules-ignore-macro=<value>
Ignore the definition of the given macro when building and loading modules
-fmodules-prune-after=<seconds>
Specify the interval (in seconds) after which a module file will be considered unused
-fmodules-prune-interval=<seconds>
Specify the interval (in seconds) between attempts to prune the module cache
-fmodules-search-all Search even non-imported modules to resolve references
-fmodules-strict-decluse
Like -fmodules-decluse but requires all headers to be in modules
-fmodules-ts Enable support for the C++ Modules TS
-fmodules-user-build-path <directory>
Specify the module user build path
-fmodules-validate-once-per-build-session
Don't verify input files for the modules if the module has been successfully validated or loaded during this build session
-fmodules-validate-system-headers
Validate the system headers that a module depends on when loading the module
-fmodules Enable the 'modules' language feature
-fms-compatibility-version=<value>
Dot-separated value representing the Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
-fms-compatibility Enable full Microsoft Visual C++ compatibility
-fms-extensions Accept some non-standard constructs supported by the Microsoft compiler
-fmsc-version=<value> Microsoft compiler version number to report in _MSC_VER (0 = don't define it (default))
-fnew-alignment=<align> Specifies the largest alignment guaranteed by '::operator new(size_t)'
-fno-access-control Disable C++ access control
-fno-assume-sane-operator-new
Don't assume that C++'s global operator new can't alias any pointer
-fno-autolink Disable generation of linker directives for automatic library linking
-fno-builtin-<value> Disable implicit builtin knowledge of a specific function
-fno-builtin Disable implicit builtin knowledge of functions
-fno-common Compile common globals like normal definitions
-fno-constant-cfstrings Disable creation of CodeFoundation-type constant strings
-fno-coverage-mapping Disable code coverage analysis
-fno-crash-diagnostics Disable auto-generation of preprocessed source files and a script for reproduction during a clang crash
-fno-debug-info-for-profiling
Do not emit extra debug info for sample profiler.
-fno-debug-macro Do not emit macro debug information
-fno-declspec Disallow __declspec as a keyword
-fno-delayed-template-parsing
Disable delayed template parsing
-fno-diagnostics-fixit-info
Do not include fixit information in diagnostics
-fno-dollars-in-identifiers
Disallow '$' in identifiers
-fno-elide-constructors Disable C++ copy constructor elision
-fno-elide-type Do not elide types when printing diagnostics
-fno-experimental-new-pass-manager
Disables an experimental new pass manager in LLVM.
-fno-gnu-inline-asm Disable GNU style inline asm
-fno-integrated-as Disable the integrated assembler
-fno-jump-tables Do not use jump tables for lowering switches
-fno-lax-vector-conversions
Disallow implicit conversions between vectors with a different number of elements or different element types
-fno-lto Disable LTO mode (default)
-fno-merge-all-constants
Disallow merging of constants
-fno-objc-infer-related-result-type
do not infer Objective-C related result type based on method family
-fno-operator-names Do not treat C++ operator name keywords as synonyms for operators
-fno-preserve-as-comments
Do not preserve comments in inline assembly
-fno-profile-generate Disable generation of profile instrumentation.
-fno-profile-instr-generate
Disable generation of profile instrumentation.
-fno-profile-instr-use Disable using instrumentation data for profile-guided optimization
-fno-reroll-loops Turn off loop reroller
-fno-rtlib-add-rpath Do not add -rpath with architecture-specific resource directory to the linker flags
-fno-rtti Disable generation of rtti information
-fno-sanitize-address-use-after-scope
Disable use-after-scope detection in AddressSanitizer
-fno-sanitize-blacklist Don't use blacklist file for sanitizers
-fno-sanitize-cfi-cross-dso
Disable control flow integrity (CFI) checks for cross-DSO calls.
-fno-sanitize-coverage=<value>
Disable specified features of coverage instrumentation for Sanitizers
-fno-sanitize-memory-track-origins
Disable origins tracking in MemorySanitizer
-fno-sanitize-recover=<value>
Disable recovery for specified sanitizers
-fno-sanitize-stats Disable sanitizer statistics gathering.
-fno-sanitize-thread-atomics
Disable atomic operations instrumentation in ThreadSanitizer
-fno-sanitize-thread-func-entry-exit
Disable function entry/exit instrumentation in ThreadSanitizer
-fno-sanitize-thread-memory-access
Disable memory access instrumentation in ThreadSanitizer
-fno-sanitize-trap=<value>
Disable trapping for specified sanitizers
-fno-short-wchar Force wchar_t to be an unsigned int
-fno-show-column Do not include column number on diagnostics
-fno-show-source-location
Do not include source location information with diagnostics
-fno-signed-char Char is unsigned
-fno-signed-zeros Allow optimizations that ignore the sign of floating point zeros
-fno-spell-checking Disable spell-checking
-fno-stack-protector Disable the use of stack protectors
-fno-standalone-debug Limit debug information produced to reduce size of debug binary
-fno-threadsafe-statics Do not emit code to make initialization of local statics thread safe
-fno-trigraphs Do not process trigraph sequences
-fno-unroll-loops Turn off loop unroller
-fno-use-cxa-atexit Don't use __cxa_atexit for calling destructors
-fno-use-init-array Don't use .init_array instead of .ctors
-fobjc-arc-exceptions Use EH-safe code when synthesizing retains and releases in -fobjc-arc
-fobjc-arc Synthesize retain and release calls for Objective-C pointers
-fobjc-exceptions Enable Objective-C exceptions
-fobjc-runtime=<value> Specify the target Objective-C runtime kind and version
-fobjc-weak Enable ARC-style weak references in Objective-C
-fopenmp-targets=<value>
Specify comma-separated list of triples OpenMP offloading targets to be supported
-foptimization-record-file=<value>
Specify the file name of any generated YAML optimization record
-fpack-struct=<value> Specify the default maximum struct packing alignment
-fpascal-strings Recognize and construct Pascal-style string literals
-fpcc-struct-return Override the default ABI to return all structs on the stack
-fplugin=<dsopath> Load the named plugin (dynamic shared object)
-fprebuilt-module-path=<directory>
Specify the prebuilt module path
-fprofile-generate=<directory>
Generate instrumented code to collect execution counts into <directory>/default.profraw (overridden by LLVM_PROFILE_FILE env var)
-fprofile-generate Generate instrumented code to collect execution counts into default.profraw (overridden by LLVM_PROFILE_FILE env var)
-fprofile-instr-generate=<file>
Generate instrumented code to collect execution counts into <file> (overridden by LLVM_PROFILE_FILE env var)
-fprofile-instr-generate
Generate instrumented code to collect execution counts into default.profraw file (overridden by '=' form of option or LLVM_PROFILE_FILE env var)
-fprofile-instr-use=<value>
Use instrumentation data for profile-guided optimization
-fprofile-sample-use=<value>
Enable sample-based profile guided optimizations
-fprofile-use=<pathname>
Use instrumentation data for profile-guided optimization. If pathname is a directory, it reads from <pathname>/default.profdata. Otherwise, it reads from file <pathname>.
-freciprocal-math Allow division operations to be reassociated
-freg-struct-return Override the default ABI to return small structs in registers
-frelaxed-template-template-args
Enable C++17 relaxed template template argument matching
-freroll-loops Turn on loop reroller
-frtlib-add-rpath Add -rpath with architecture-specific resource directory to the linker flags
-fsanitize-address-field-padding=<value>
Level of field padding for AddressSanitizer
-fsanitize-address-globals-dead-stripping
Enable linker dead stripping of globals in AddressSanitizer
-fsanitize-address-use-after-scope
Enable use-after-scope detection in AddressSanitizer
-fsanitize-blacklist=<value>
Path to blacklist file for sanitizers
-fsanitize-cfi-cross-dso
Enable control flow integrity (CFI) checks for cross-DSO calls.
-fsanitize-coverage=<value>
Specify the type of coverage instrumentation for Sanitizers
-fsanitize-memory-track-origins=<value>
Enable origins tracking in MemorySanitizer
-fsanitize-memory-track-origins
Enable origins tracking in MemorySanitizer
-fsanitize-memory-use-after-dtor
Enable use-after-destroy detection in MemorySanitizer
-fsanitize-recover=<value>
Enable recovery for specified sanitizers
-fsanitize-stats Enable sanitizer statistics gathering.
-fsanitize-thread-atomics
Enable atomic operations instrumentation in ThreadSanitizer (default)
-fsanitize-thread-func-entry-exit
Enable function entry/exit instrumentation in ThreadSanitizer (default)
-fsanitize-thread-memory-access
Enable memory access instrumentation in ThreadSanitizer (default)
-fsanitize-trap=<value> Enable trapping for specified sanitizers
-fsanitize-undefined-strip-path-components=<number>
Strip (or keep only, if negative) a given number of path components when emitting check metadata.
-fsanitize=<check> Turn on runtime checks for various forms of undefined or suspicious behavior. See user manual for available checks
-fsave-optimization-record
Generate a YAML optimization record file
-fshort-enums Allocate to an enum type only as many bytes as it needs for the declared range of possible values
-fshort-wchar Force wchar_t to be a short unsigned int
-fshow-overloads=<value>
Which overload candidates to show when overload resolution fails: best|all; defaults to all
-fsized-deallocation Enable C++14 sized global deallocation functions
-fsjlj-exceptions Use SjLj style exceptions
-fslp-vectorize Enable the superword-level parallelism vectorization passes
-fsplit-dwarf-inlining Place debug types in their own section (ELF Only)
-fstack-protector-all Force the usage of stack protectors for all functions
-fstack-protector-strong
Use a strong heuristic to apply stack protectors to functions
-fstack-protector Enable stack protectors for functions potentially vulnerable to stack smashing
-fstandalone-debug Emit full debug info for all types used by the program
-fstrict-enums Enable optimizations based on the strict definition of an enum's value range
-fstrict-return Always treat control flow paths that fall off the end of a non-void function as unreachable
-fstrict-vtable-pointers
Enable optimizations based on the strict rules for overwriting polymorphic C++ objects
-fthinlto-index=<value> Perform ThinLTO importing using provided function summary index
-ftrap-function=<value> Issue call to specified function rather than a trap instruction
-ftrapv-handler=<function name>
Specify the function to be called on overflow
-ftrapv Trap on integer overflow
-ftrigraphs Process trigraph sequences
-funique-section-names Use unique names for text and data sections (ELF Only)
-funroll-loops Turn on loop unroller
-fuse-init-array Use .init_array instead of .ctors
-fveclib=<value> Use the given vector functions library
-fvectorize Enable the loop vectorization passes
-fvisibility-inlines-hidden
Give inline C++ member functions default visibility by default
-fvisibility-ms-compat Give global types 'default' visibility and global functions and variables 'hidden' visibility by default
-fvisibility=<value> Set the default symbol visibility for all global declarations
-fwhole-program-vtables Enables whole-program vtable optimization. Requires -flto
-fwrapv Treat signed integer overflow as two's complement
-fwritable-strings Store string literals as writable data
-fxray-always-instrument= <value>
Filename defining the whitelist for imbuing the 'always instrument' XRay attribute.
-fxray-instruction-threshold= <value>
Sets the minimum function size to instrument with XRay
-fxray-instrument Generate XRay instrumentation sleds on function entry and exit
-fxray-never-instrument= <value>
Filename defining the whitelist for imbuing the 'never instrument' XRay attribute.
-fzvector Enable System z vector language extension
-F <value> Add directory to framework include search path
--gcc-toolchain=<value> Use the gcc toolchain at the given directory
-gcodeview Generate CodeView debug information
-gdwarf-2 Generate source-level debug information with dwarf version 2
-gdwarf-3 Generate source-level debug information with dwarf version 3
-gdwarf-4 Generate source-level debug information with dwarf version 4
-gdwarf-5 Generate source-level debug information with dwarf version 5
-gline-tables-only Emit debug line number tables only
-gmodules Generate debug info with external references to clang modules or precompiled headers
-gz=<value> DWARF debug sections compression type
-gz DWARF debug sections compression type
-G <size> Put objects of at most <size> bytes into small data section (MIPS / Hexagon)
-g Generate source-level debug information
-help Display available options
-H Show header includes and nesting depth
-I- Restrict all prior -I flags to double-quoted inclusion and remove current directory from include path
-idirafter <value> Add directory to AFTER include search path
-iframeworkwithsysroot <directory>
Add directory to SYSTEM framework search path, absolute paths are relative to -isysroot
-iframework <value> Add directory to SYSTEM framework search path
--ilink-no-cfg Do not use cfg file for Borland linker
-imacros <file> Include macros from file before parsing
-include-pch <file> Include precompiled header file
-include <file> Include file before parsing
-index-header-map Make the next included directory (-I or -F) an indexer header map
-iprefix <dir> Set the -iwithprefix/-iwithprefixbefore prefix
-iquote <directory> Add directory to QUOTE include search path
-isysroot <dir> Set the system root directory (usually /)
-isystem-after <directory>
Add directory to end of the SYSTEM include search path
-isystem <directory> Add directory to SYSTEM include search path
-ivfsoverlay <value> Overlay the virtual filesystem described by file over the real file system
-iwithprefixbefore <dir>
Set directory to include search path with prefix
-iwithprefix <dir> Set directory to SYSTEM include search path with prefix
-iwithsysroot <directory>
Add directory to SYSTEM include search path, absolute paths are relative to -isysroot
-I <dir> Add directory to include search path
--jobs=<N> Perform a parallel compilation with a maximum of <N> processes
-L <dir> Add directory to library search path
-mabicalls Enable SVR4-style position-independent code (Mips only)
-malign-double Align doubles to two words in structs (x86 only)
-mbackchain Link stack frames through backchain on System Z
-mcdecl Make CDecl calling convention the default
-mcrc Allow use of CRC instructions (ARM only)
-MD Write a depfile containing user and system headers
-meabi <value> Set EABI type, e.g. 4, 5 or gnu (default depends on triple)
-mexecute-only Disallow generation of data access to code sections (ARM only)
-mfastcall Make FastCall calling convention the default
-mfentry Insert calls to fentry at function entry (x86 only)
-mfix-cortex-a53-835769 Workaround Cortex-A53 erratum 835769 (AArch64 only)
-mfp32 Use 32-bit floating point registers (MIPS only)
-mfp64 Use 64-bit floating point registers (MIPS only)
-MF <file> Write depfile output from -MMD, -MD, -MM, or -M to <file>
-mgeneral-regs-only Generate code which only uses the general purpose registers (AArch64 only)
-mglobal-merge Enable merging of globals
-MG Add missing headers to depfile
-mhvx-double Enable Hexagon Double Vector eXtensions
-mhvx Enable Hexagon Vector eXtensions
-miamcu Use Intel MCU ABI
--migrate Run the migrator
-mincremental-linker-compatible
(integrated-as) Emit an object file which can be used with an incremental linker
-mindirect-jump=<value> Change indirect jump instructions to inhibit speculation
-mios-version-min=<value>
Set iOS deployment target
-MJ <value> Write a compilation database entry per input
-mllvm <value> Additional arguments to forward to LLVM's option processing
-mlong-calls Generate branches with extended addressability, usually via indirect jumps.
-mmacosx-version-min=<value>
Set Mac OS X deployment target
-mmadd4 Enable the generation of 4-operand madd.s, madd.d and related instructions.
-MMD Write a depfile containing user headers
-mms-bitfields Set the default structure layout to be compatible with the Microsoft compiler standard
-mmsa Enable MSA ASE (MIPS only)
-mmt Enable MT ASE (MIPS only)
-MM Like -MMD, but also implies -E and writes to stdout by default
-mno-abicalls Disable SVR4-style position-independent code (Mips only)
-mno-cdecl Do not make CDecl calling convention the default
-mno-execute-only Allow generation of data access to code sections (ARM only)
-mno-fastcall Do not make FastCall calling convention the default
-mno-fix-cortex-a53-835769
Don't workaround Cortex-A53 erratum 835769 (AArch64 only)
-mno-global-merge Disable merging of globals
-mno-hvx-double Disable Hexagon Double Vector eXtensions
-mno-hvx Disable Hexagon Vector eXtensions
-mno-implicit-float Don't generate implicit floating point instructions
-mno-incremental-linker-compatible
(integrated-as) Emit an object file which cannot be used with an incremental linker
-mno-long-calls Restore the default behaviour of not generating long calls
-mno-madd4 Disable the generation of 4-operand madd.s, madd.d and related instructions.
-mno-movt Disallow use of movt/movw pairs (ARM only)
-mno-ms-bitfields Do not set the default structure layout to be compatible with the Microsoft compiler standard
-mno-msa Disable MSA ASE (MIPS only)
-mno-mt Disable MT ASE (MIPS only)
-mno-neg-immediates Disallow converting instructions with negative immediates to their negation or inversion.
-mno-restrict-it Allow generation of deprecated IT blocks for ARMv8. It is off by default for ARMv8 Thumb mode
-mno-stdcall Do not make StdCall calling convention the default
-mno-unaligned-access Force all memory accesses to be aligned (AArch32/AArch64 only)
-mnocrc Disallow use of CRC instructions (ARM only)
-module-dependency-dir <value>
Directory to dump module dependencies to
-module-file-info Provide information about a particular module file
-momit-leaf-frame-pointer
Omit frame pointer setup for leaf functions
-mpie-copy-relocations Use copy relocations support for PIE builds
-MP Create phony target for each dependency (other than main file)
-mqdsp6-compat Enable hexagon-qdsp6 backward compatibility
-MQ <value> Specify name of main file output to quote in depfile
-mrelax-all (integrated-as) Relax all machine instructions
-mrestrict-it Disallow generation of deprecated IT blocks for ARMv8. It is on by default for ARMv8 Thumb mode.
-mrtd Make StdCall calling convention the default
-msoft-float Use software floating point
-mstack-alignment=<value>
Set the stack alignment
-mstack-probe-size=<value>
Set the stack probe size
-mstackrealign Force realign the stack at entry to every function
-mstdcall Make StdCall calling convention the default
-mthread-model <value> The thread model to use, e.g. posix, single (posix by default)
-MT <value> Specify name of main file output in depfile
-munaligned-access Allow memory accesses to be unaligned (AArch32/AArch64 only)
-MV Use NMake/Jom format for the depfile
-M Like -MD, but also implies -E and writes to stdout by default
--no-cuda-gpu-arch=<value>
Remove GPU architecture (e.g. sm_35) from the list of GPUs to compile for. 'all' resets the list to its default value.
--no-cuda-version-check Don't error out if the detected version of the CUDA install is too low for the requested CUDA gpu architecture.
--no-system-header-prefix=<prefix>
Treat all #include paths starting with <prefix> as not including a system header.
-nobuiltininc Disable builtin #include directories
-nostdinc++ Disable standard #include directories for the C++ standard library
-ObjC++ Treat source input files as Objective-C++ inputs
-objcmt-atomic-property Make migration to 'atomic' properties
-objcmt-migrate-all Enable migration to modern ObjC
-objcmt-migrate-annotation
Enable migration to property and method annotations
-objcmt-migrate-designated-init
Enable migration to infer NS_DESIGNATED_INITIALIZER for initializer methods
-objcmt-migrate-instancetype
Enable migration to infer instancetype for method result type
-objcmt-migrate-literals
Enable migration to modern ObjC literals
-objcmt-migrate-ns-macros
Enable migration to NS_ENUM/NS_OPTIONS macros
-objcmt-migrate-property-dot-syntax
Enable migration of setter/getter messages to property-dot syntax
-objcmt-migrate-property
Enable migration to modern ObjC property
-objcmt-migrate-protocol-conformance
Enable migration to add protocol conformance on classes
-objcmt-migrate-readonly-property
Enable migration to modern ObjC readonly property
-objcmt-migrate-readwrite-property
Enable migration to modern ObjC readwrite property
-objcmt-migrate-subscripting
Enable migration to modern ObjC subscripting
-objcmt-ns-nonatomic-iosonly
Enable migration to use NS_NONATOMIC_IOSONLY macro for setting property's 'atomic' attribute
-objcmt-returns-innerpointer-property
Enable migration to annotate property with NS_RETURNS_INNER_POINTER
-objcmt-whitelist-dir-path=<value>
Only modify files with a filename contained in the provided directory path
-ObjC Treat source input files as Objective-C inputs
-output-dir <directory> Write object files to <directory>
-o <file> Write output to <file>
-PC<N> (deprecated, use --jobs=<N> instead) Perform a parallel compilation with a maximum of <N> processes
-pg Enable mcount instrumentation
-pipe Use pipes between commands, when possible
--precompile Only precompile the input
-print-file-name=<file> Print the full library path of <file>
-print-ivar-layout Enable Objective-C Ivar layout bitmap print trace
-print-libgcc-file-name Print the library path for the currently used compiler runtime library ("libgcc.a" or "libclang_rt.builtins.*.a")
-print-prog-name=<name> Print the full program path of <name>
-print-resource-dir Print the resource directory pathname
-print-search-dirs Print the paths used for finding libraries and programs
-pthread Support POSIX threads in generated code
--ptxas-path=<value> Path to ptxas (used for compiling CUDA code)
-P Disable linemarker output in -E mode
-Qunused-arguments Don't emit warning for unused driver arguments
-q Suppress compiler identification banner
-relocatable-pch Whether to build a relocatable precompiled header
-rewrite-legacy-objc Rewrite Legacy Objective-C source to C++
-rewrite-objc Rewrite Objective-C source to C++
-Rpass-analysis=<value> Report transformation analysis from optimization passes whose name matches the given POSIX regular expression
-Rpass-missed=<value> Report missed transformations by optimization passes whose name matches the given POSIX regular expression
-Rpass=<value> Report transformations performed by optimization passes whose name matches the given POSIX regular expression
-rtlib=<value> Compiler runtime library to use
-R<remark> Enable the specified remark
-save-stats=<value> Save llvm statistics.
-save-stats Save llvm statistics.
-save-temps=<value> Save intermediate compilation results.
-save-temps Save intermediate compilation results
-serialize-diagnostics <value>
Serialize compiler diagnostics to a file
-std=<value> Language standard to compile for
-stdlib=<value> C++ standard library to use
--system-header-prefix=<prefix>
Treat all #include paths starting with <prefix> as including a system header.
-S Only run preprocess and compilation steps
--target=<value> Generate code for the given target
-Tbss <addr> Set starting address of BSS to <addr>
-Tdata <addr> Set starting address of BSS to <addr>
-time Time individual commands
-traditional-cpp Enable some traditional CPP emulation
-trigraphs Process trigraph sequences
-Ttext <addr> Set starting address of BSS to <addr>
-T <script> Specify <script> as linker script
-t<value> Specify Borland target executable
-undef undef all system defines
-U <macro> Undefine macro <macro>
--verify-debug-info Verify the binary representation of debug output
-verify-pch Load and verify that a pre-compiled header file is not stale
-v Show commands to run and use verbose output
-Wa,<arg> Pass the comma separated arguments in <arg> to the assembler
-Wdeprecated Enable warnings for deprecated constructs and define __DEPRECATED
-Wl,<arg> Pass the comma separated arguments in <arg> to the linker
-working-directory <value>
Resolve file paths relative to the specified directory
-Wp,<arg> Pass the comma separated arguments in <arg> to the preprocessor
-W<warning> Enable the specified warning
-w Suppress all warnings
-Xanalyzer <arg> Pass <arg> to the static analyzer
-Xassembler <arg> Pass <arg> to the assembler
-Xclang <arg> Pass <arg> to the clang compiler
-Xcuda-fatbinary <arg> Pass <arg> to fatbinary invocation
-Xcuda-ptxas <arg> Pass <arg> to the ptxas assembler
-Xdriver <arg> Pass <arg> directly to the clang compiler
-Xlinker <arg> Pass <arg> to the linker
-Xpreprocessor <arg> Pass <arg> to the preprocessor
-x <language> Treat subsequent input files as having type <language>
-z <arg> Pass -z <arg> to the linker
+<arg> Load user specified configuration file
cppLibTransform.exe – Overview and Functionality
cppLibTransform.exe is a utility shipped with Embarcadero
RAD Studio (including version 13 Architect) that is primarily used to transform
C++ static libraries (.lib files) into a format compatible with the Delphi
linker when linking C++ code into Delphi projects—especially in the context of Delphi–C++
interoperability (e.g., when using C++Builder libraries from Delphi or creating
hybrid applications).
Key Functions:
Usage Context:
bash
1
cppLibTransform.exe input.lib output.lib
(Exact syntax may vary; consult Embarcadero documentation or
use cppLibTransform.exe /? for help.)
Standalone Use?
Important Notes:
Documentation:
Official documentation is limited, but references can be
found in:
In summary: cppLibTransform.exe is a specialized, standalone
utility used to adapt C++ static libraries for use in Delphi projects,
typically invoked automatically by the IDE but usable manually when needed.
Specify folder for generated files: --out:<output_dir> Specify file with description of the task: --task:<xml file> Usage: CppLibTransform [options] Options: --task:<xml file> - XML file with descrption of the task. --out:<output_dir> - directory where the output .cpp/.h and .pas files should be placed. --gendeleg - generate delegates for all polymorphic classes. --fmt - perform formatting of the output files after translation.
Executable: dbkw64_29_0.exe
Purpose / Functionality
dbkw64_29_0.exe is the Delphi Debugger Kernel for Win64.
It acts as the low-level backend process that supports the Delphi IDE’s
integrated debugger when you:
The executable handles communication between the IDE
(BDS.EXE / Delphi IDE) and the target process being debugged, managing symbol
loading, breakpoint coordination, exception handling, and stack/frame
introspection.
⚙️ Usage Context
🚫 Standalone Use
✅ In Summary
|
Aspect |
Description |
|
Executable |
dbkw64_29_0.exe |
|
Component of |
RAD Studio 13 (Delphi/C++Builder) |
|
Function |
64-bit debugger backend (Delphi Debug Kernel) |
|
Used by |
Delphi/C++Builder IDE (BDS.EXE) |
|
Standalone Use |
❌ Not practical;
internal component only |
|
Invoked When |
Debugging a 64-bit Windows project |
In short, dbkw64_29_0.exe is a backend process used
exclusively by the Delphi/C++Builder IDE to perform Win64 debugging tasks.
It is not a standalone developer tool and has no general-purpose
command-line or manual functionality outside of the IDE.
DCC32.EXE - Delphi Command Line
Compiler (32-bit)
Overview
dcc32.exe is the 32-bit Delphi command-line compiler included with RAD
Studio. It compiles Delphi source code (.pas files) and project files (.dpr) into 32-bit Windows executables without requiring the
IDE to be open.
Functionality
This compiler:
Standalone Usage
Yes, dcc32.exe is fully functional as a standalone application. You can use it independently of the
IDE for:
Basic Usage Example
batch
dcc32.exe MyProject.dpr
dcc32.exe -B MyProject.dpr (rebuild all)
dcc32.exe -U"C:\Units" MyProject.dpr (specify unit search
path)
The IDE uses dcc32.exe internally when you build 32-bit projects, but it's designed to be used
independently as well.
Embarcadero Delphi for Win32 compiler version 36.0
Copyright (c) 1983,2025 Embarcadero Technologies, Inc.
Syntax: dcc32 [options] filename [options]
-A<unit>=<alias> = Set unit alias
-B = Build all units
-CC = Console target
-CG = GUI target
-D<syms> = Define conditionals
-E<path> = EXE/DLL output directory
-F<offset> = Find error
-GD = Detailed map file
-GP = Map file with publics
-GS = Map file with segments
-H = Output hint messages
-I<paths> = Include directories
-J = Generate .obj file
-JPHNE = Generate C++ .obj file, .hpp file, in namespace, export all
-JL = Generate package .lib, .bpi, and all .hpp files for C++
-K<addr> = Set image base addr
-LE<path> = package .bpl output directory
-LN<path> = package .dcp output directory
-LU<package> = Use package
-M = Make modified units
-NU<path> = unit .dcu output directory
-NH<path> = unit .hpp output directory
-NO<path> = unit .obj output directory
-NB<path> = unit .bpi output directory
-NX<path> = unit .xml output directory
-NS<namespaces> = Namespace search path
-O<paths> = Object directories
-P = look for 8.3 file names also
-Q = Quiet compile
-R<paths> = Resource directories
-TX<ext> = Output name extension
-U<paths> = Unit directories
-V = Debug information in EXE
-VR = Generate remote debug (RSM)
-VT = Debug information in TDS
-VN = TDS symbols in namespace
-W[+|-|^][warn_id] = Output warning messages
-Z = Output 'never build' DCPs
-$<dir> = Compiler directive
--help = Show this help screen
--version = Show name and version
--codepage:<cp> = specify source file encoding
--default-namespace:<namespace> = set namespace
--depends = output unit dependency information
--doc = output XML documentation
--drc = output resource string .drc file
--no-config = do not load default dcc32.cfg file
--description:<string> = set executable description
--inline:{on|off|auto} = function inlining control
--legacy-ifend = allow legacy $IFEND directive
--zero-based-strings[+|-] = strings are indexed starting at 0
--peflags:<flags> = set extra PE Header flags field
--peoptflags:<flags> = set extra PE Header optional flags field
--peosversion:<major>.<minor> = set OS Version fields in PE Header (default: 5.0)
--pesubsysversion:<major>.<minor> = set Subsystem Version fields in PE Header (default: 5.0)
--peuserversion:<major>.<minor> = set User Version fields in PE Header (default: 0.0)
--lib-version:<version> = Output package name version
--lib-suffix:<suffix> = Output package name suffix
Compiler switches: -$<letter><state> (defaults are shown below)
A8 Aligned record fields
B- Full boolean Evaluation
C+ Evaluate assertions at runtime
D+ Debug information
G+ Use imported data references
H+ Use long strings by default
I+ I/O checking
J- Writeable structured consts
L+ Local debug symbols
M- Runtime type info
O+ Optimization
P+ Open string params
Q- Integer overflow checking
R- Range checking
T- Typed @ operator
U- Pentium(tm)-safe divide
V+ Strict var-strings
W- Generate stack frames
X+ Extended syntax
Y+ Symbol reference info
Z1 Minimum size of enum types
Stack size: -$M<minStackSize[,maxStackSize]> (default 16384,1048576)
DCC64.EXE Functionality
The executable file DCC64.EXE in your Embarcadero RAD Studio 13 Architect installation is the Delphi 64-bit Command Line Compiler.
Summary of Functionality
Standalone Usage
Yes, DCC64.EXE can be used as a standalone application.
RAD Studio provides a rich set of command-line utilities, including the compiler executables, which are commonly used to perform targeted compilation and related functions outside the graphical environment.
Embarcadero Delphi for Win64 compiler version 37.0
Copyright (c) 1983,2025 Embarcadero Technologies, Inc.
Syntax: dcc64 [options] filename [options]
-A<unit>=<alias> = Set unit alias
-B = Build all units
-CC = Console target
-CG = GUI target
-D<syms> = Define conditionals
-E<path> = EXE/DLL output directory
-F<offset> = Find error
-GD = Detailed map file
-GP = Map file with publics
-GS = Map file with segments
-H = Output hint messages
-I<paths> = Include directories
-J = Generate .obj file
-JPHNE = Generate C++ .obj file, .hpp file, in namespace, export all
-JL = Generate package .lib, .bpi, and all .hpp files for C++
-K<addr> = Set image base addr
-LE<path> = package .bpl output directory
-LN<path> = package .dcp output directory
-LU<package> = Use package
-M = Make modified units
-NU<path> = unit .dcu output directory
-NH<path> = unit .hpp output directory
-NO<path> = unit .obj output directory
-NB<path> = unit .bpi output directory
-NX<path> = unit .xml output directory
-NS<namespaces> = Namespace search path
-O<paths> = Object directories
-P = look for 8.3 file names also
-Q = Quiet compile
-R<paths> = Resource directories
-TX<ext> = Output name extension
-U<paths> = Unit directories
-V = Debug information in EXE
-VR = Generate remote debug (RSM)
-VT = Debug information in TDS
-VN = TDS symbols in namespace
-W[+|-|^][warn_id] = Output warning messages
-Z = Output 'never build' DCPs
-$<dir> = Compiler directive
--help = Show this help screen
--version = Show name and version
--codepage:<cp> = specify source file encoding
--default-namespace:<namespace> = set namespace
--depends = output unit dependency information
--doc = output XML documentation
--drc = output resource string .drc file
--no-config = do not load default dcc64.cfg file
--description:<string> = set executable description
--inline:{on|off|auto} = function inlining control
--legacy-ifend = allow legacy $IFEND directive
--zero-based-strings[+|-] = strings are indexed starting at 0
--peflags:<flags> = set extra PE Header flags field
--peoptflags:<flags> = set extra PE Header optional flags field
--peosversion:<major>.<minor> = set OS Version fields in PE Header (default: 5.0)
--pesubsysversion:<major>.<minor> = set Subsystem Version fields in PE Header (default: 5.0)
--peuserversion:<major>.<minor> = set User Version fields in PE Header (default: 0.0)
--lib-version:<version> = Output package name version
--lib-suffix:<suffix> = Output package name suffix
Compiler switches: -$<letter><state> (defaults are shown below)
A8 Aligned record fields
B- Full boolean Evaluation
C+ Evaluate assertions at runtime
D+ Debug information
G+ Use imported data references
H+ Use long strings by default
I+ I/O checking
J- Writeable structured consts
L+ Local debug symbols
M- Runtime type info
O+ Optimization
P+ Open string params
Q- Integer overflow checking
R- Range checking
T- Typed @ operator
V+ Strict var-strings
W- Generate stack frames
X+ Extended syntax
Y+ Symbol reference info
Z1 Minimum size of enum types
Stack size: -$M<minStackSize[,maxStackSize]> (default 16384,1048576)
The drinterop.exe in Embarcadero RAD Studio 13 Architect is part of the Delphi and C++Builder tooling for interoperation with .NET or other external frameworks. Specifically, it is used for Design-Time and Runtime interoperability—helping Delphi/C++ code interact with external components, services, or managed code environments.
In practical terms:
It is not a standalone application for general use; it’s mostly a helper for the IDE and compilation system.
If you want, I can provide a diagram showing how drinterop.exe fits into the RAD Studio build and design-time process. That often makes it much clearer. Do you want me to do that?
Embarcadero Dr Interop Version 1.0 Copyright (c) 2010 Embarcadero Technologies, Inc. Usage: DRINTEROP [options] <assemblies> [options] /? This help screen /q Suppress copyright message
DSProxyGen.exe is a command-line tool included with Embarcadero RAD Studio that is used to generate client proxy classes for DataSnap server applications.
Here’s a detailed summary:
Example: generating Delphi proxies for a server:
DSProxyGen.exe -W http://localhost:8080/ServerMethods -O ClientProxies.pas -L Delphi
In short: DSProxyGen.exe generates ready-to-use client proxy classes for interacting with DataSnap servers.
syntax DSPROXYGEN [options] output [options] output file name or file extension .java: java_android .cpp: C++ .pas: Delphi .js: Java Script .h: objectivec_ios42 .cs: csharp_silverlight options [-C:connectionstring TCP/IP example: host=localhost;port=211 (default) HTTP example: host=localhost;port=8080;communicationprotocol=http [-IC:includeclasses] [-EC:excludeclasses [-IM:includemethods] [-EM:excludemethods] [-PW:proxywriter] [-REST] [-DBX] examples Delphi proxy using default connection DSPROXYGEN .pas Delphi REST proxy DSPROXYGEN .pas -rest Exclude methods starting with "Echo" and ending with "String" DSPROXYGEN .pas -em:Echo*;*String Java Script proxy to file DSPROXYGEN c:\temp\servermethods.js Generate using registered writer DSPROXYGEN -pw:"Delphi DBX"
DSProxyReg.exe in Embarcadero RAD Studio 13 Architect is used for managing and registering DataSnap client proxy classes.
Here’s a breakdown:
In short: DSProxyReg.exe handles the registration of DataSnap client proxy classes so that they can be easily used in RAD Studio projects.
syntax DSPROXYREG [options] [filename] filename proxy writer package to register options [-u] = Unregister a proxy writer package [-r] = Register a proxy writer packages [-l] = List registered proxy writer packages [-lw] = List registered proxy writers examples DSPROXYREG -r MyProxyWriter.bpl DSPROXYREG MyProxyWriter.bpl DSPROXYREG -u MyProxyWriter.bpl DSPROXYREG -l DSPROXYREG -lw
dsymlink.exe in Embarcadero RAD Studio is used for managing symbolic links in the IDE environment. Specifically, it helps create, update, or maintain symbolic links for RAD Studio’s internal paths, such as library paths, package locations, or component directories, so that the IDE can reference files or folders consistently across different projects or installations.
It is primarily a developer/installer utility and not something you normally run directly during everyday coding. Its role is more about ensuring the IDE and its tools can correctly locate dependent files using symbolic links.
dsymlink - Generate dSYM file. Copyright 2012-16 Embarcadero Technologies, Inc.
Usage: dsymlink <machofile> [options]
-o<file> Write dSYM file to <file> (default is <machofile>.dSYM).
-h Display this information.
-q Supress banner.
-w[n] Set warning level where n<=3; 0 disables warnings (default is 1).
-v Verbose mode.
-i<path> Look in <path> when searching for files (repeat for each path).
-x Only look in paths specified in -i option when searching for files.
-l<file> Only link files matching <file> (repeat for each).
-f<str> Only link files containing <str> (repeat for each).
-c<num> Use num as the codepage when interpretting strings.
-d[o|f|s|l|u|v|a]* Debug mode (o=objects, f=fixups, s=symbols, l=lines, u=locale, v=verbose, a=all).
EMSDevConsole.exe Functionality
The EMSDevConsole.exe executable is the RAD Server Console (previously known as the EMS
Desktop Console) application.
Description/Summary of Functionality
Its primary function is to serve as a standalone management tool
for a RAD Server instance (formerly known as Enterprise Mobility
Services or EMS). RAD Server provides a Mobile Enterprise Application Platform
(MEAP) that allows you to deploy turnkey enterprise REST API app servers,
exposing custom REST APIs and enterprise database data.
The functionalities of the RAD Server Console application include:
Standalone Use
Yes, the application is designed to be used as a standalone application.
It is provided as a stand-alone developer application within the
RAD Studio installation (typically alongside EMSDevServer.exe, the developer version of the RAD
Server Engine). Embarcadero specifically recommends using the stand-alone
applications for development purposes to easily test your RAD Server
client applications and packages.
While it is bundled with the IDE, you can run EMSDevConsole.exe directly from the bin directory without needing to launch the Delphi IDE.
For a production environment, however, Embarcadero recommends setting up the
RAD Server Console on a dedicated web server, though the developer version is
suitable for local testing.
EMSDevServerCommand.exe is part of Embarcadero RAD Studio and is associated with EMS (Enterprise Mobility Services). Its primary purpose is to control or interact with the EMS development server from the command line.
Specifically, this executable can be used to:
It is primarily intended for developers testing EMS backends locally rather than for production EMS servers.
RAD Development Server, Version 4.10 (37.0.57242.3601) Copyright (c) 2009-2025 Embarcadero Technologies, Inc. -l[load]<package> - loads specified resource package -i[ni]<ini file name> - loads specified INI file -p[ort]<port> - specifies TCP/IP port to use -[lo]g<1|0> - enables / disables log output -s[etup] - runs initial setup mode -u[pgrade] - runs version upgrade mode -[sta]r[t] - starts server -[silen]t - runs with minimal questions and outputs -h[elp] - outputs this help
EMSMultiTenantConsole.exe is a standalone
command-line administration tool for the EMS (Enterprise
Mobility Services) Multi-Tenant Server.
Its primary function is
to manage the high-level structure and configuration of an EMS server that is
set up in a multi-tenant architecture. In a multi-tenant
system, a single instance of the EMS server software can serve multiple,
logically isolated groups of users, data, and backend resources. Each of these
isolated groups is called a "tenant."
This console application
allows system administrators to perform key administrative tasks on these
tenants without needing to use a graphical user interface (GUI).
Key
Functionality
The tool is designed for
server and database-level operations. Typical commands and functionalities
include:
Is it
strictly used by the Delphi IDE or can it be used standalone?
It is primarily a
standalone application.
Analogy
Think of it this way:
Typical
Use Case
A development team uses
the Delphi IDE's GUI tools to set up and test tenants during the application
development phase. When the application is deployed to a production server, the
operations team uses EMSMultiTenantConsole.exe within their
automated deployment scripts to create the initial tenant or to perform routine
maintenance tasks like adding a new tenant on the live server.
Conclusion: EMSMultiTenantConsole.exe is a powerful, standalone
command-line administration tool for managing the multi-tenant aspects of an
Embarcadero EMS server. It is designed for system administrators and DevOps
processes, complementing the GUI-based tools available inside the RAD Studio
IDE.
FDExplorer.exe - FireDAC Explorer
FDExplorer.exe is the FireDAC
Explorer utility, a database connection and exploration tool that comes
with RAD Studio's FireDAC data access framework.
Functionality
FireDAC Explorer provides:
Standalone vs IDE Usage
FDExplorer.exe is a standalone application - it does not require the Delphi IDE
to be running and can be used independently. You can launch it directly from
the bin directory or create a shortcut.
Common Use Cases:
The connection definitions you create in FDExplorer
are stored in .ini files and can be referenced by name in your Delphi/C++Builder
applications using FireDAC components, providing
consistency between development and runtime configurations.
Functionality of
FMXControlStyleViewer.exe
Summary: FMXControlStyleViewer.exe is a specialized preview tool provided with
Embarcadero RAD Studio for the FireMonkey (FMX)
framework, which is used for building cross-platform, visually rich
applications in Delphi and C++Builder. Its primary purpose is to load and
visually inspect FMX style files (.style files)
focused on individual controls (e.g., buttons, labels, lists, and other UI
elements). It renders these controls in a sample interface to demonstrate how
they appear under the applied style, including variations for different states
(e.g., normal, hovered, pressed, disabled, focused) and themes (e.g.,
light/dark modes). This helps developers test and debug custom styles without
needing to compile and run a full application. Key features include:
It is part of a family of FMX style preview tools (e.g., alongside
FMXStyleViewer.exe for general styles, FMXMobileStyleViewer.exe for mobile
themes), and style files are typically found in the RAD Studio installation
directory under Redist\styles\Fmx.
Standalone Usage: Yes, it can be used as a fully standalone application outside of the
Delphi IDE. It is not integrated exclusively into the IDE (unlike the Bitmap
Style Designer, which invokes similar previews internally during style
editing). You can launch it directly from the command line, File Explorer, or
by associating .style files with it for quick previews
during development workflows.
For more details on creating or editing FMX styles, refer to the RAD Studio documentation on
customizing FireMonkey applications. If
you're working with RAD Studio 13, ensure your styles are compatible with the
updated FMX runtime for optimal results.
Application: FMXMetropolisUIStyleViewer.exe
Installed with: Embarcadero RAD Studio 13 Architect
Location: ...\Embarcadero\Studio\23.0\bin\
🧭 Purpose and
Functionality Summary
FMXMetropolisUIStyleViewer.exe is a FireMonkey (FMX) utility
developed by Embarcadero to preview and inspect Metropolis UI styles.
Metropolis UI styles are a special class of FMX visual themes designed to
emulate the look and behavior of modern Windows “Metro” or “Modern UI”
applications—flat layouts, tile-based controls, and touch-friendly interface
elements.
This tool enables developers to:
Essentially, it’s a visual style inspector and previewer for FMX
styles used in Metropolis UI projects.
🧩 Integration and
Usage Context
Example standalone usage:
FMXMetropolisUIStyleViewer.exe "C:\Users\Public\Documents\Embarcadero\Studio\13.0\Styles\MetropolisUIBlue.style"
This opens the given style file for inspection without needing to start
the IDE.
⚙️ Command-Line
Arguments (Typical Use)
Although not heavily documented, the executable generally supports:
·
FMXMetropolisUIStyleViewer.exe <path-to-style-file>
🧾 Summary Table
|
Aspect |
Description |
|
Executable |
FMXMetropolisUIStyleViewer.exe |
|
Primary Purpose |
Preview and inspect FireMonkey Metropolis UI style files (.style) |
|
Used By IDE |
Yes — invoked by the
Delphi/C++Builder IDE |
|
Standalone Usable |
Yes — runs independently to open .style
files |
|
Input Format |
.style FireMonkey style definition files |
|
Typical Users |
Delphi/C++Builder developers
designing FMX UIs |
Based on the name FMXMobileStyleViewer.exe, this is a utility
application for viewing and previewing FireMonkey
(FMX) mobile styles in RAD Studio.
Functionality
This application allows you to:
Usage Type
This can be used as a standalone application. While it's included with RAD Studio
and integrated into the development workflow, you don't need the IDE running to
use it. You can:
This is particularly useful for:
The standalone nature makes it a convenient tool for rapid style
evaluation without the overhead of loading the entire RAD Studio environment.
FMXStyleViewer.exe Functionality
The FMXStyleViewer.exe executable is a utility specifically for FireMonkey (FMX) Styles.
💻 Standalone Use
Yes, FMXStyleViewer.exe can be used as a standalone application
outside of the Delphi or C++Builder IDE.
This application is essentially a dedicated viewer that loads a FireMonkey style definition and renders a set of standard
controls using that style, allowing for visual inspection of the UI changes it
introduces.
FMXWinModernStyleViewer.exe is a utility application
included with Embarcadero
RAD Studio 13 Architect
that is specifically designed to preview and inspect FireMonkey (FMX) Windows Modern UI styles.
Functionality Summary:
Standalone vs. IDE
Integration:
Conclusion:
FMXWinModernStyleViewer.exe is a standalone diagnostic and
preview utility
for FireMonkey developers working with the Windows
Modern style in RAD Studio 13. It is not required at runtime and is not part of
the IDE itself, but rather a helper application you can run anytime to inspect
the visual appearance of FMX controls under this specific theme.
Application: Formatter.exe
Installed with: Embarcadero RAD Studio 13 Architect
Location: ...\Embarcadero\Studio\23.0\bin\Formatter.exe
Description / Functionality Summary
Formatter.exe is the Delphi source code formatter engine used by the Delphi
IDE. It automatically reformats Delphi (Object Pascal) source code files
according to the formatting options defined in the IDE or in an external
configuration file. Its main purpose is to ensure consistent indentation,
spacing, capitalization, and code layout throughout a project or team.
It is the backend executable for the "Format Source"
or "Reformat Code" feature accessible via the IDE menus (Ctrl+D in the editor).
Key Capabilities
Usage Context
However, it typically requires either:
Typical Command-Line Usage (when
supported)
Although not officially documented for public use, older versions of Formatter.exe support syntax like:
Formatter.exe -config "C:\Path\to\Formatter.config"
-file "C:\Project\Unit1.pas"
or
Formatter.exe -folder
"C:\Project\Source" -recursive
These options may vary slightly between RAD Studio versions. Running the
tool without parameters often displays available switches.
Application: Formatter.exe Installed with: Embarcadero RAD Studio 13 Architect Location: ...\Embarcadero\Studio\23.0\bin\Formatter.exe Description / Functionality Summary Formatter.exe is the Delphi source code formatter engine used by the Delphi IDE. It automatically reformats Delphi (Object Pascal) source code files according to the formatting options defined in the IDE or in an external configuration file. Its main purpose is to ensure consistent indentation, spacing, capitalization, and code layout throughout a project or team. It is the backend executable for the "Format Source" or "Reformat Code" feature accessible via the IDE menus (Ctrl+D in the editor). Key Capabilities Reformats .pas (unit) and .dfm (form) files based on Delphi formatting rules. Honors configuration settings defined in: The IDE’s Formatter Options dialog. External configuration files such as Formatter.config or .formatter.conf. Can process one or multiple files at once. Provides consistent code style across developers and builds. Usage Context Primarily IDE-integrated: The Delphi IDE invokes Formatter.exe internally when you use the “Format Source†command or apply formatting options from project settings. Can be used standalone (with limitations): Formatter.exe can be executed from the command line as a standalone tool. This makes it useful for: Automated build or CI/CD processes that need to enforce code formatting. Batch-formatting source files outside the IDE. However, it typically requires either: A valid configuration file specifying formatting rules, or Running it with command-line arguments that specify input and output files. Typical Command-Line Usage (when supported) Although not officially documented for public use, older versions of Formatter.exe support syntax like: Formatter.exe -config "C:\Path\to\Formatter.config" -file "C:\Project\Unit1.pas" or Formatter.exe -folder "C:\Project\Source" -recursive These options may vary slightly between RAD Studio versions. Running the tool without parameters often displays available switches.
GenDocCLI.exe Functionality Summary
The GenDocCLI.exe executable in Embarcadero RAD Studio 13 Architect is the Command-Line Documentation Generation Tool for Delphi projects.
Its primary function is to automatically generate HTML-format documentation from your Delphi project files (.dproj), including source code and UML model information.
Key details about its operation:
Embarcadero Generate Documentation command line version
Copyright (c) 2010 Embarcadero Technologies, Inc.
Syntax: GenDocCLI.exe {options} <project.dproj>
List of options:
-o <path> output folder
--without-diagrams don't generate diagrams
--without-navigation don't include navigation applet
<project.dproj> Delphi project file
--build-config=<name> Override default build configuration (e.g. Debug, Release)
-q,--quiet suppress messages
-v verbose, print more info about configuration
Compiler options:
-Ipath1;path2;... include directories
-Upath1;path2;... compiled unit directories
-Dsymbol1;symbol2;... conditional compilation symbols
-A<unit>=<alias> unit aliases
Here is a detailed summary of the functionality of GenTLB.exe, specifically within the context of Embarcadero Rad Studio 13 Architect.
Core Functionality
GenTLB.exe is a command-line utility whose primary purpose is to generate a Pascal Import Library for a Type Library.
In simpler terms, it takes a file containing type definitions (a Type Library, often a .tlb, .dll, .ocx, or .exe file) and creates a Delphi unit (a .pas file) that allows your Delphi or C++Builder application to easily interact with the COM objects, interfaces, and constants defined within that Type Library.
Detailed Breakdown
1. What is a Type Library (TLB)?
A Type Library is a binary file (or a resource embedded in a DLL/OCX/EXE) that describes COM interfaces, coclasses (COM classes), enumerations, records (structures), and constants. It is the metadata for a COM component. Examples include libraries for Microsoft Office applications, ActiveX controls, or any other COM-based API.
2. What Does GenTLB.exe Create?
When you run GenTLB.exe on a type library, it generates a .pas file. This file contains:
This generated unit is the bridge that lets your native Pascal code call into the COM-based component.
3. How is it Used?
GenTLB.exe is used from the command line. The basic syntax is:
bash
GenTLB.exe [options] <SourceFile>
Common Options and Scenarios:
bash
GenTLB.exe -PMSXML6_Pas.pas msxml6.dll
4. Relationship with the RAD Studio IDE
While you can use GenTLB.exe manually, the RAD Studio IDE automates this process in the background when you:
The IDE internally calls GenTLB.exe (or a very similar internal mechanism) to generate the Pascal import unit and then adds it to your project or the component palette.
5. Key Use Cases
Summary for a Developer
Think of GenTLB.exe as the "COM Bridge Builder." It's a specialized compiler that takes the language of COM (Type Libraries) and translates it into the native language of Delphi (Pascal), saving you from the tedious, complex, and error-prone task of manually writing all the interface declarations and GUIDs yourself.
Location: It's found in the bin directory of your Rad Studio installation (e.g., C:\Program Files (x86)\Embarcadero\Studio\22.0\bin).
In practice, you will rarely call this executable directly unless you are building from a command line or writing a script, as the IDE's "Import Type Library" feature provides a much more convenient front-end for it. However, understanding its purpose is fundamental to working with COM in Rad Studio.
Embarcadero GenTLB Version 12.16581
Copyright(c) 1995-2025 Embarcadero Technologies, Inc.
Syntax: GenTLB [options] <sourcefile>
TLB Output File Options:
-T<name> Name of typelibrary output file
-D<path> Output directory path
Additional Language Binding files to generate:
-C Generate C++ Binding file
-P Generate PASCAL Binding file
GetItCmd.exe is a command-line utility included with Embarcadero RAD Studio (versions like 13 Architect), serving as the CLI counterpart to the graphical GetIt Package Manager. It enables developers to manage third-party components, libraries, and tools for Delphi and C++ Builder projects without using the IDE's GUI interface. This tool is particularly useful for automation, scripting, or headless environments, such as CI/CD pipelines.
Key Functionalities
This tool integrates with RAD Studio's ecosystem, ensuring that installed packages are properly registered in the IDE. For detailed usage, refer to Embarcadero's official documentation or run GetItCmd.exe --help for command syntax. Note that functionality may vary slightly by RAD Studio version, and it requires an active internet connection for repository access.
GetIt Package Manager - Version 7.0 Copyright (c) 2025 Embarcadero Technologies, Inc. All Rights Reserved. Usage: GetItCmd [<Options>]: -i=<itemid> or --install=<itemid> Install Item[s] separated with ";". -if=<featureid> or --install_features=<featureid> Install Feature[s] separated with ";". Available IDs: delphi, delphi_windows, delphi_macos, delphi_linux, delphi_ios delphi_android, cbuilder, cbuilder_windows, french, german japanese, samples, help, teechart, dunit interbase_express, interbase_2020, openjdk, android_sdk, fonts. -id or --installdeferred Install deferred packages. -u=<itemid> or --uninstall=<itemid> Uninstall Item[s] separated with ";". -d=<fileurl> or --download=<fileurl> Download a file. -l=<searchby> or --list=<searchby> List all available items. Result set depends on sort and filter commands. -s=[name/vendor/date] or --sort=[name/vendor/date] Specifies the sort parameter for the list command. Default is "name". -f=[all/installed] or --filter=[all/installed] Specifies the filter parameter for the list command. Default is "installed". -ra=<apppath> or --runapp=<apppath> Run an application before exit. -c=[useonline/useoffline] or --config=[useonline/useoffline] Set up a GetIt system. -un=<username> or --username=<username> User name for proxies with required authentication. -p=<password> or --password=<password> Password for proxies with required authentication. -v=[quiet/minimal/normal/detailed] or --verb=[quiet/minimal/normal/detailed] Specifies the verbose level for console output messages. -ae or --accepteulas The user accepts EULA[s] of downloaded package[s]. -dnsef or --donotsetenvfile Do not set environment variables. -h or --help Print all available commands. -ap=<appparams> or --appparams=<appparams> Parameters for run application. Command finished with success!
grep.exe in RAD Studio
grep.exe is a text search utility that implements the classic Unix/Linux
"grep" (Global Regular Expression Print) command for Windows. It
searches through files for lines matching specified patterns.
Core Functionality
Typical Command-Line Options
Common grep flags include:
Standalone vs. IDE Usage
This is a standalone command-line application. While included with RAD Studio for
convenience (likely used by the IDE for internal search operations and build
processes), grep.exe can absolutely be used independently from the command
prompt or in batch scripts.
You can use it for:
The IDE may invoke it behind the scenes for "Find in Files"
operations, but you're free to use it directly via command line for your own
purposes.
Turbo GREP 5.6 Copyright (c) 1992-2010 Embarcadero Technologies, Inc.
Syntax: GREP [-rlcnvidzewoqhu] searchstring file[s] or @filelist
Options are one or more option characters preceded by "-", and optionally
followed by "+" (turn option on), or "-" (turn it off). The default is "+".
-r+ Regular expression search -l- File names only
-c- match Count only -n- Line numbers
-v- Non-matching lines only -i- Ignore case
-d- Search subdirectories -z- Verbose
-e Next argument is searchstring -w- Word search
-o- UNIX output format Default set: [0-9A-Z_]
-q- Quiet: supress normal output
-h- Supress display of filename
-u xxx Create a copy of grep named 'xxx' with current options set as default
A regular expression is one or more occurrences of: One or more characters
optionally enclosed in quotes. The following symbols are treated specially:
^ start of line $ end of line
. any character \ quote next character
* match zero or more + match one or more
[aeiou0-9] match a, e, i, o, u, and 0 thru 9 ;
[^aeiou0-9] match anything but a, e, i, o, u, and 0 thru 9
impdef.exe is a command-line utility included with Embarcadero RAD Studio (and previously with Borland/CodeGear development tools) that generates a module definition (.def) file from an existing Windows DLL.
Primary Function:
Typical Use Case:
If you have a third-party DLL but no corresponding import library or header files, you can run:
cmd
1
impdef MyLibrary.def MyLibrary.dll
This produces MyLibrary.def, which you can then use with the implib.exe tool (also included with RAD Studio) to generate an import library:
cmd
1
implib MyLibrary.lib MyLibrary.def
The resulting .lib file enables your application to link against the DLL at compile time.
Key Notes:
In summary, impdef.exe is a DLL export inspector and .def file generator, facilitating linking to external DLLs in Embarcadero C++ and Delphi projects.
Embarcadero Impdef Version 3.4.0 Copyright (c) 1991-2016 Embarcadero Technologies, Inc.
Syntax: IMPDEF [options] destname[.def] srcname[.dll]
Options:
-a Add '_' alias for MS flavor cdecl functions
-aa Force the alias even if the function already starts with '_'
-s Don't convert stdcall names from Microsoft mangling
-h Emit hints
implib.exe is the Import Library Tool for 32-bit Windows applications in RAD Studio. It creates import libraries directly from DLLs or from module definition files for DLLs Embarcadero.
Key Functionality:
Command Syntax:
Basic usage is: IMPLIB <options> <LibName>[.lib] ...
Important Note:
For 64-bit applications, RAD Studio uses a different utility called mkexp (MKEXP.EXE) EmbarcaderoEmbarcadero instead of implib.exe. Since you have RAD Studio 13, you'll likely be using the 64-bit toolchain for most modern development, which means implib.exe would primarily be for legacy 32-bit Windows projects.
Embarcadero Implib Version 3.4.0 Copyright (c) 1991-2016 Embarcadero Technologies, Inc.
Syntax: IMPLIB [options] libname[.lib] [@respfile | srcname] [srcname ...]
Options:
-a Add '_' alias for MS flavor cdecl functions
-aa Force the alias even if the function already starts with '_'
-c Case sensitive symbols
-f Force imports by name (with hints)
-s Don't convert stdcall names from Microsoft mangling
-w No Warnings
Respfile may contain a list of source files to process.
Wildcards are ok for .DLL and .DEF file names.
Primary Purpose
To automatically manage the process of compiling and linking source code into executable programs, libraries, and other final outputs. It determines which parts of a project need to be recompiled and issues the commands to do so, saving you from manually compiling every file every time.
Key Functionality
bash
make -f MyProject.mak
In the Context of Rad Studio
Summary Analogy
Think of make.exe as a smart construction foreman for your software project.
In short, the make.exe in your Rad Studio bin directory is a critical, behind-the-scenes utility that drives the efficient and automated building of your applications.
MAKE Version 5.43 Copyright (c) 1987, 2019 Embarcadero Technologies, Inc.
Syntax: MAKE [options ...] target[s]
-B Builds all targets regardless of dependency dates
-Dsymbol[=string] Defines symbol [equal to string]
-Idirectory Names an include directory
-K Keeps (does not erase) temporary files created by MAKE
-N Increases MAKE's compatibility with NMAKE
-Wfilename Writes MAKE to filename updating all non-string options
-Usymbol Undefine symbol
-ffilename Uses filename as the MAKEFILE
-a Performs auto-dependency checks for include files
-c Caches auto-dependency information
-e Ignores redefinition of environment variable macros
-i Ignores errors returned by commands
-l+ Enables use of long command lines
-m Displays the date and time stamp of each file
-n Prints commands but does not do them
-p Displays all macro definitions and implicit rules
-q Returns zero if target is up-to-date and nonzero
if it is not (for use in batch files)
-r Ignores rules and macros defined in BUILTINS.MAK
-s Silent, does not print commands before doing them
-? or -h Prints this message
Options marked with '+' are on by default. To turn off a default
option follow it by a '-', for example: -a-
migrationtool.exe is the standalone command-line interface
(CLI) for the RAD Studio Project Migration Tool. Its primary purpose
is to automate the process of converting projects, project groups, and source
code from older versions of Delphi and C++Builder to a format compatible with
RAD Studio 13 (Alexandria).
In essence, it performs
the same core function as the migration wizard that launches automatically when
you open an older project in the RAD Studio IDE, but it does so without a
graphical user interface and without requiring the IDE to be running.
Core functionalities
include:
Standalone
vs. IDE Integration
Is it strictly used by
the Delphi IDE or can it be used as a standalone application?
It is primarily a
standalone application.
Typical
Use Cases
Basic
Command Line Usage Example
You would typically open
a command prompt in your project's directory or use the RAD Studio Command
Prompt (which has the correct environment paths set).
Here's a basic example:
bash
# Navigate to the bin
directory or ensure it's in your PATH
cd "C:\Program Files
(x86)\Embarcadero\Studio\22.0\bin"
# Migrate a single
project group
migrationtool.exe -M "C:\MyOldProjects\MyApp.groupproj"
# Migrate all projects
in a directory and its subdirectories
migrationtool.exe -M -R "C:\MyOldProjects"
# Get help to see all
options
migrationtool.exe -?
Common command-line
options include -M for migration
mode, -R for recursive
directory searching, and -B to specify a
custom backup location.
Conclusion
migrationtool.exe is a powerful and essential standalone
command-line utility for any developer or organization systematically
upgrading a codebase to RAD Studio 13. It provides the automation and
repeatability needed for large-scale migrations that the interactive IDE wizard
cannot efficiently handle. It is a separate tool that complements, rather than
is driven by, the Delphi/C++Builder IDE.
mkexp.exe in Embarcadero Rad Studio is a utility used to generate export definition (.DEF) files from object files or compiled libraries. These .DEF files list the symbols (functions, procedures, and data) that a DLL or library exports, which is necessary when building dynamic-link libraries (DLLs) in Delphi or C++Builder.
In short:
It’s primarily a linker support tool and is usually invoked automatically by the build process when creating DLLs.
mkexp.exe: Copyright (c) 2013 Embarcadero Technologies, Inc.
All rights reserved.
usage: mkexp [-f] [-d] [-o] [-p] outputfile inputfile
Creates an import archive from an input file.
Valid input files are OMF object files that contain only
EXPDEF COMENT records, PE files, and DEF files.
-f: prefer to link by ordinal (dangerous)
-d: assume input is a DEF file
-o: assume input is an OMF object file
-p: assume input is a PE file
File type is by default based on extension:
OMF: .obj
DEF: .def
PE: .dll, .exe
The objcopy.exe in Embarcadero Rad Studio 13 Architect is a binary utility for manipulating object files and executables. Its main functions include:
Essentially, objcopy is used to transform, clean, or adapt compiled object files for linking, distribution, or debugging purposes.
In the context of Delphi/C++Builder, it is often used internally in the build process when converting COFF/OMF object files or preparing binaries for linking.
OVERVIEW: llvm-objcopy tool
USAGE: llvm-objcopy [options] input [output]
OPTIONS:
--add-gnu-debuglink=debug-file
Add a .gnu_debuglink for <debug-file>
--add-section=section=file
Make a section named <section> with the contents of <file>.
--add-symbol=name=[section:]value[,flags]
Add new symbol <name> to .symtab. Accepted flags: global, local, weak, default, hidden, protected, file, section, object, function, indirect-function. Accepted but ignored for compatibility: debug, constructor, warning, indirect, synthetic, unique-object, before.
--adjust-start <value> Alias for --change-start
--allow-broken-links Allow the tool to remove sections even if it would leave invalid section references. The appropriate sh_link fields will be set to zero.
--binary-architecture=<value>
Ignored for compatibility
--build-id-link-dir=dir Set directory for --build-id-link-input and --build-id-link-output to <dir>
--build-id-link-input=suffix
Hard-link the input to <dir>/xx/xxx<suffix> name derived from hex build ID
--build-id-link-output=suffix
Hard-link the output to <dir>/xx/xxx<suffix> name derived from hex build ID
-B <value> Alias for --binary-architecture
--change-start=incr Add <incr> to the start address. Can be specified multiple times, all values will be applied cumulatively.
--compress-debug-sections=[ zlib | zlib-gnu ]
Compress DWARF debug sections using specified style. Supported styles: 'zlib-gnu' and 'zlib'
--decompress-debug-sections
Decompress DWARF debug sections.
--disable-deterministic-archives
Disable deterministic mode when operating on archives (use real values for UIDs, GIDs, and timestamps).
--discard-all Remove all local symbols except file and section symbols
--discard-locals Remove compiler-generated local symbols, (e.g. symbols starting with .L)
--dump-section=section=file
Dump contents of section named <section> into file <file>
-D Alias for --enable-deterministic-archives
--enable-deterministic-archives
Enable deterministic mode when operating on archives (use zero for UIDs, GIDs, and timestamps).
--extract-dwo Remove all sections that are not DWARF .dwo sections from file
--extract-main-partition
Extract main partition from the input file
--extract-partition=name
Extract named partition from input file
-F <value> Alias for --target
--globalize-symbol=symbol
Mark <symbol> as global
--globalize-symbols=filename
Reads a list of symbols from <filename> and marks them global.
-G <value> Alias for --keep-global-symbol
-g Alias for --strip-debug
--input-target=<value> Format of the input file
-I <value> Alias for --input-target
-j <value> Alias for --only-section
--keep-file-symbols Do not remove file symbols
--keep-global-symbol=symbol
Convert all symbols except <symbol> to local. May be repeated to convert all except a set of symbols to local.
--keep-global-symbols=filename
Reads a list of symbols from <filename> and runs as if --keep-global-symbol=<symbol> is set for each one. <filename> contains one symbol per line and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files.
--keep-section=section Keep <section>
--keep-symbol=symbol Do not remove symbol <symbol>
--keep-symbols=filename Reads a list of symbols from <filename> and runs as if --keep-symbol=<symbol> is set for each one. <filename> contains one symbol per line and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files.
-K <value> Alias for --keep-symbol
--localize-hidden Mark all symbols that have hidden or internal visibility as local
--localize-symbol=symbol
Mark <symbol> as local
--localize-symbols=filename
Reads a list of symbols from <filename> and marks them local.
-L <value> Alias for --localize-symbol
--new-symbol-visibility=<value>
Visibility of symbols generated for binary input or added with --add-symbol unless otherwise specified. The default value is 'default'.
-N <value> Alias for --strip-symbol
--only-keep-debug Produce a debug file as the output that only preserves contents of sections useful for debugging purposes
--only-section=section Remove all but <section>
--output-target=<value> Format of the output file
-O <value> Alias for --output-target
--prefix-alloc-sections=prefix
Add <prefix> to the start of every allocated section name
--prefix-symbols=prefix Add <prefix> to the start of every symbol name
--preserve-dates Preserve access and modification timestamps
-p Alias for --preserve-dates
--redefine-sym=old=new Change the name of a symbol old to new
--redefine-syms=filename
Reads a list of symbol pairs from <filename> and runs as if --redefine-sym=<old>=<new> is set for each one. <filename> contains two symbols per line separated with whitespace and may contain comments beginning with '#'. Leading and trailing whitespace is stripped from each line. May be repeated to read symbols from many files.
--regex Permit regular expressions in name comparison
--remove-section=section
Remove <section>
--rename-section=old=new[,flag1,...]
Renames a section from old to new, optionally with specified flags. Flags supported for GNU compatibility: alloc, load, noload, readonly, debug, code, data, rom, share, contents, merge, strings.
-R <value> Alias for --remove-section
--set-section-alignment=section=align
Set alignment for a given section.
--set-section-flags=section=flag1[,flag2,...]
Set section flags for a given section. Flags supported for GNU compatibility: alloc, load, noload, readonly, debug, code, data, rom, share, contents, merge, strings.
--set-start=addr Set the start address to <addr>. Overrides any previous --change-start or --adjust-start values.
--split-dwo=dwo-file Equivalent to extract-dwo on the input file to <dwo-file>, then strip-dwo on the input file
--strip-all-gnu Compatible with GNU's --strip-all
--strip-all Remove non-allocated sections outside segments. .gnu.warning* and .ARM.attribute sections are not removed
--strip-debug Remove all debug sections
--strip-dwo Remove all DWARF .dwo sections from file
--strip-non-alloc Remove all non-allocated sections outside segments
--strip-sections Remove all section headers and all sections not in segments
--strip-symbol=symbol Strip <symbol>
--strip-symbols=filename
Reads a list of symbols from <filename> and removes them.
--strip-unneeded-symbol=symbol
Remove symbol <symbol> if it is not needed by relocations
--strip-unneeded-symbols=filename
Reads a list of symbols from <filename> and removes them if they are not needed by relocations
--strip-unneeded Remove all symbols not needed by relocations
-S Alias for --strip-all
--target=<value> Format of the input and output file
-U Alias for --disable-deterministic-archives
--version Print the version and exit.
-V Alias for --version
--weaken-symbol=symbol Mark <symbol> as weak
--weaken-symbols=filename
Reads a list of symbols from <filename> and marks them weak.
--weaken Mark all global symbols as weak
--wildcard Allow wildcard syntax for symbol-related flags. Incompatible with --regex. Allows using '*' to match any number of characters, '?' to match any single character, '' to escape special characters, and '[]' to define character classes. Wildcards beginning with '!' will prevent a match, for example "-N '*' -N '!x'" will strip all symbols except for "x".
-W <value> Alias for --weaken-symbol
-w Alias for --wildcard
-X Alias for --discard-locals
-x Alias for --discard-all
Pass @FILE as argument to read options from FILE.
Here is a summary of the functionality of paclient.exe in Embarcadero RAD Studio 13 Architect.
Overview
paclient.exe is the Platform Assistant Client, a crucial component of RAD Studio's multi-device application architecture. Its primary role is to act as a communication bridge or agent between your development PC (the "host") and a remote target machine (the "server"), such as a physical Windows PC, a macOS machine, or a mobile device.
Core Functionality
The main purpose of paclient.exe is to facilitate deployment and debugging on remote systems. When you cannot run your application directly on your development machine (e.g., when targeting a different OS like macOS or a different Windows environment), RAD Studio uses paclient to manage the process.
Here’s a breakdown of its key functions:
How It's Used in Practice
You do not typically launch paclient.exe directly. Its operation is managed by the RAD Studio IDE and the Platform Assistant Server (PAServer.exe). Here is the typical workflow:
Key Takeaway
paclient.exe is the workhorse agent on the remote machine that makes cross-platform development and debugging possible in RAD Studio. Without it, you would be unable to deploy, run, or debug your applications on Windows, macOS, or mobile targets directly from the IDE.
Platform Assistant Client Version 37.0.10.2
Copyright (c) 2010-2025 Embarcadero Technologies, Inc.
Usage: paclient [<options>] ProfileName
where <options> include:
-h<name> or --host=<name>
Specify the name or IP address of the remote/host machine running the
Platform Assistant Server
-p<number> or --port=<number>
Specify the port the Platform Assistant Server is configured for. Default
to 64211
-m<platform> or --platform=<platform>
Specify the target platform. Possible values are "Win32", "OSX64",
"Win64", "Win64x"
-a<file/dir> or --add=<file/dir>
Add file/dir to the list of items to be cached. You may specify multiple
file/dir separated with ';'. You may also use this option more than once.
File/dir can include wildcard characters (e.g. --add=c:\abc\**\*.* where
** indicates to include all sub-directories of abc)
-ai<file/dir> or --addinclude=<file/dir>
Add include file/dir to the list of items to be cached. You may specify
multiple file/dir separated with ';'. You may also use this option
more than once.
File/dir can include wildcard characters (e.g. --addinclude=c:\abc\**\*.*
where ** indicates to include all sub-directories of abc)
-al<file/dir> or --addlibrary=<file/dir>
Add library file/dir to the list of items to be cached. You may specify
multiple file/dir separated with ';'. You may also use this option more
than once.
File/dir can include wildcard characters (e.g. --addlibrary=c:\abc\**\*.*
where ** indicates to include all sub-directories of abc)
-af<dir>[,*] or --addframework=<dir>[,*]
Add framework files to the list of items to be cached. You may specify
multiple dir separated with ';'. You may also use this option more than
once
-g<file/dir>[,<destdir>] or --get=<file/dir>[,<destdir>]
Copy file/dir from the remote/host machine running the Platform Assistant
Server. You may specify multiple file/dir,destdir separated with ';'.
You may also use this option more than once.
File/dir can include wildcard characters (e.g. --get=c:\abc\**\*.* where
** indicates to include all sub-directories of abc)
-u<file/dir>[,<destdir>][,<flags>][,<destname>] or
--put=<file/dir>[,<destdir>][,<flags>][,<destname>]
Copy file/dir to the remote/host machine running the Platform Assistant
Server. You may specify multiple file/dir,destdir,flag,destname separated
with ';'. You may also use this option more than once. Possible flags
values are "0", "1", "2", "3", "5" where 0 for normal file, 1 for
runnable file, 2 for archive file, 3 for executable file, and 5 for
script file.
File/dir can include wildcard characters (e.g. --put=c:\abc\**\*.* where
** indicates to include all sub-directories of abc)
-U<file>[,<destdir>][,<destname>] or --Put=<file>[,<destdir>][,<destname>]
Copy file on the remote/host machine running the Platform Assistant
Server. You may specify multiple file/dir,destdir,destname separated
with ';'. You may also use this option more than once.
-r<file/dir> or --remove=<file/dir>
Remove file/dir from the list of items to be cached locally. You may
specify multiple file/dir separated with ';'. You may also use this
option more than once.
File/dir can include wildcard characters (e.g. --remove=c:\abc\**\*.*
where ** indicates to include all sub-directories of abc)
-R<file/dir> or --Remove=<file/dir>
Remove file/dir from the remote/host machine running the Platform
Assistant Server. You may specify multiple file/dir separated with ';'.
You may also use this option more than once.
File/dir can include wildcard characters (e.g. --Remove=c:\abc\**\*.*
where ** indicates to include all sub-directories of abc)
-C<dir>,<listfile> or --Clean=<dir>,<listfile>
Remove files in directory and all sub-directories of <dir> that are
not listed in file <listfile> from the remote/host machine running the
Platform Assistant Server. You may use this option more than once
-l or --local
Update and display information about the specified Profile without
initiating a connection to the Platform Assistant Server
-s<dir> or --sysroot=<dir>
Indicate the local directory where the remote files will be cached.
Default to %USERPROFILE%\Documents\RAD Studio\Profiles\<ProfileName>
-t<number> or --timeout=<number>
Specify the timeout in seconds when connecting to the Platform Assistant
Server. Default to 0 second
-e<number> or --error=<number>
Stop copy after n errors. Default to 20 errors
-k or --keep
Keep files whose source time is different than the destination time
-pw<text> or --password=<text>
Specify the login password for the Platform Assistant Server
-pk<text> or --passkey=<text>
Specify the login password (encrypted) for the Platform Assistant Server
-pf<file> or --passfile=<file>
Specify the login passfile for the Platform Assistant Server
-c<path>,<certificate>[,<entitlement>] or
--codesign=<path>,<certificate>[,<entitlement> [,1]]
CodeSign application with certificate on the remote machine running the
Platform Assistant Server. If '1' is specified, application
notarization options will be applied
-i<path>,<outpath>,<certificate>,<profile>,<type> or
--ipa=<path>,<outpath>,<certificate>,<profile>,<type>
Create application .ipa file with certificate and provisioning profile
on the remote machine running the Platform Assistant Server. Possible
type values are "1", "2" where 1 for ad-hoc and 2 for app-store
-ii<path>,<deviceid> or --installipa=<path>,<deviceid>
Install .ipa file in the device on the remote machine running the
Platform Assistant Server
-pb<path>,<installpath>,<outpath>,<certificate> or
--productbuild=<path>,<installpath>,<outpath>,<certificate>
Create application .pkg file with certificate on the remote machine
running the Platform Assistant Server
-mm<javapath>,<toolpath>,<manifest>,<outpath>,<androidlibmanifestlistpath>,<compresslibfiles> or
--manifestmerge=<javapath>,<toolpath>,<manifest>,<outpath>,<androidlibmanifestlistpath>
,<compresslibfiles>
Merge Android manifest files
-rc<toolpath>,<reslistpath>,<outdir> or
--rescompile=<toolpath>,<reslistpath>,<outdir>
Compile Android resource files to .flat ones
-rp<toolpath>,<compiledresdir>,<compiledreslistpath>,<manifest>,<basepath>,<outpath>
,<textsymbolspath>[,<protobufformat>][,<nocompressfileexts>] or
--respackage=<toolpath>,<compiledresdir>,<compiledreslistpath>,<manifest>,<basepath>
,<outpath>,<textsymbolspath>[,<protobufformat>][,<nocompressfileexts>]
Package compiled Android resource files in a .zip file
-dc<javapath>,<toolpath>,<path>,<outpath>,<basepath>,<minapilevel>[,<classpathlistpath>]
[,<globalspath>] or
--dexcompile=<javapath>,<toolpath>,<path>,<outpath>,<basepath>,<minapilevel>
[,<classpathlistpath>][,<globalspath>]
Transform a .jar file into a .dex one
-dm<javapath>,<toolpath>,<classdir>,<minapilevel>,<dexlistpath>[,<globalslistpath>] or
--dexmerge=<javapath>,<toolpath>,<classdir>,<minapilevel>,<dexlistpath>[,<globalslistpath>]
Merge .dex files
-ap<javapath>,<toolpath>,<packagedrespath>,<srcdir>,<classdir>,<assetdir>,<outpath>
[,<debug>][,<compressdexfiles>][,<compresslibfiles>][,<nocompressfileexts>][,<pagealign>]
[,<minapilevel>,<alias>,<keystore>,<storepass>,<keypass>] or
--apppackage=<javapath>,<toolpath>,<packagedrespath>,<srcdir>,<classdir>,<assetdir>
,<outpath>[,<debug>][,<compressdexfiles>][,<compresslibfiles>][,<nocompressfileexts>]
[,<pagealign>][,<minapilevel>,<alias>,<keystore>,<storepass>,<keypass>]
Create application .apk file from the specified files
-bm<javapath>,<toolpath>,<packagedrespath>,<srcdir>,<classdir>,<assetdir>,<outpath> or
--basemodule=<javapath>,<toolpath>,<packagedrespath>,<srcdir>,<classdir>,<assetdir>,<outpath>
Create application base module file from the specified files
-ab<javapath>,<bundletoolpath>,<basemodulepath>,<bundleconfigpath>,<outpath> or
--appbundle=<javapath>,<bundletoolpath>,<basemodulepath>,<bundleconfigpath>,<outpath>
Create application .aab file from the specified files
-j<sdkpath>,<path>,<alias>,<keystore>,[<sign>],[<digest>],<storepass>
,<keypass> or
--jarsign=<sdkpath>,<path>,<alias>,<keystore>,[<sign>],[<digest>],<storepass>
,<keypass>
JarSign application .aab file with the specified keystore
-as<javapath>,<toolpath>,<path>,<alias>,<keystore>,<storepass>,<keypass> or
--apksign=<javapath>,<toolpath>,<path>,<alias>,<keystore>,<storepass>,<keypass>
ApkSign application .apk file with the specified keystore
-z<sdkpath>,<path>,<outpath>[,<size>] or
--zipalign=<sdkpath>,<path>,<outpath>[,<size>]
Align application with the specified alignment size. Default to 4
-sd<sdkpath>,<path>[,<outpath>] or --stripdebug=<sdkpath>,<path>[,<outpath>]
Remove all debugging symbols
-un<path1>,<path2>,<outpath> or --universal=<path1>,<path2>,<outpath>[,1]
Create multi architecture file on the remote machine running the
Platform Assistant Server. If '1' is not specified, <path1> and <path2>
will be removed
-u8 or --utf8encode
Write error and output text in UTF8 format
-v or --verbose
Print out the files processed
-up<makeappxpath>,<package>,<mapfile> or
--uwppackaging=<makeappxpath>,<package>,<mapfile>
Create Universal Windows Platform package, .msix file, using files
listed in the mapfile
-us<signtoolpath>,<package>,<certificate>,[<password>],<digest>[,<timestamp>] or
--uwpsigning=<signtoolpath>,<package>,<certificate>,[<password>],<digest>[,<timestamp>]
Sign Universal Windows Platform package with the specified certificate
-pp<bundleid>,<certificate>,<profile>,<type> or
--provisioningprofile=<bundleid>,<certificate>,<profile>,<type>
Verify if bundleid, certificate and type are valid for the specified
provisioning profile found on the remote machine running the Platform
Assistant Server. Possible type values are "1", "2" where 1 for ad-hoc
and 2 for app-store
-na<path>,<bundleid>,<username>,<password>,<teamid>[,<options>] or
--notarizeapp=<path>,<bundleid>,<username>,<password>,<teanid>[,<options>]
Notarize the application on the remote machine running the Platform
Assistant Server
-ni<UUID>,<username>,<password>,<teamid> or
--notarizationinfo=<UUID>,<username>,<password>,<teamid>
Get the status of the notarization request on the remote machine
running the Platform Assistant Server
-sa<path>,<outpath> or --stapleapp=<path>,<outpath>
Attach a ticket to the notarized application on the remote machine
running the Platform Assistant Server
-ac<path>,<outpath> or --assetcatalog=<path>,<outpath>
Compile an asset catalog document into Assets.car on the remote
machine running the Platform Assistant Server
-sb<path>,<outpath> or --storyboard=<path>,<outpath>
Compile storyboard document into a file that can be loaded at runtime
on the remote machine running the Platform Assistant Server
-? or --help
Print this help screen
RC.EXE - Windows
Resource Compiler
Overview
rc.exe is the Microsoft Windows Resource Compiler. This
is a standard Windows SDK tool that compiles resource script files (.rc) into binary resource files (.res) that can be linked
into Windows executables.
Functionality
The Resource Compiler processes resource definition files
containing:
It converts these human-readable .rc files into binary .res files that
the linker incorporates into your final .exe or .dll.
Standalone vs IDE
Usage
This is a standalone command-line tool that can be
used completely independently of the Delphi IDE.
Command Line Usage
Example:
bash
rc.exe [options] filename.rc
Common options include:
Why It's in RAD
Studio
Embarcadero includes rc.exe as part of
the toolchain because Windows applications frequently need to compile
resources, and having it bundled ensures compatibility and availability without
requiring developers to install the full Windows SDK separately.
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
Copyright (C) Microsoft Corporation. All rights reserved.
Usage: rc [options] .RC input file
Switches:
/r Emit .RES file (optional)
/v Verbose (print progress messages)
/d Define a symbol
/u Undefine a symbol
/fo Rename .RES file
/l Default language ID in hex
/i Add a path for INCLUDE searches
/x Ignore INCLUDE environment variable
/c Define a code page used by NLS conversion
/w Warn on Invalid codepage in .rc (default is an error)
/y Don't warn if there are duplicate control ID's
/n Append null's to all strings in the string tables
/fm Localizable resource only dll file name
/j Add localizable resource type(s)
/k Add resource type(s) to be kept in the language neutral
file in addition to adding them to the resource only DLL
Using the /j switch
/q RC Configuration file for the resource only DLL
/g Specify the ultimate fallback language ID in hex
/g1 Specify if version only MUI file can be created
/g2 Specify the custom file version for checksum in MUI creation
Flags may be either upper or lower case
reFind.exe - Search
and Replace Utility
reFind is a command-line utility for search and replacement of
Perl RegEx text patterns in text files, using Perl
compatible regular expressions (PCRE) for search and replacement patterns Embarcadero.
Functionality:
The utility provides several capabilities:
Standalone vs IDE
Usage:
reFind.exe is a standalone command-line utility that does NOT
require the IDE to be running. It's listed among RAD Studio's command-line
utilities that enable you to use the command line to perform targeted
operations Embarcadero. You can run it
directly from the command prompt - the RAD Studio "bin" directory is
on the path, so you can simply type "refind"
from the Windows command line Embarcadero.
The tool is completely independent of the IDE and can be
used in batch scripts, automation workflows, or any other context where
command-line utilities can be executed.
RegEx (PCRE) search and replace utility, v 2.10.2
Copyright (c) 2013-2025 Embarcadero Technologies, Inc.
Usage: reFind <filemasks> [/S] [/Y] [/B:0|1|2] [/V:0|1|2] [/C] [/I] [/W] [/L]
[/P:<searchpattern>] [/R:<replacepattern>] [/X:<rule filename>]
<filemasks> Specifies the file masks or file names to process.
/? Display help.
/S Search this directory with all subdirectories.
/Y Modify also read-only files.
/B:0 If .bak file exists, no replace will be performed (default).
/B:1 If .bak file exists, it is overwritten.
/B:2 No .bak file is created.
/V:N Verbose mode. N=0 - no output, N=1 - normal, N=2 - extended.
/C Comment code instead to remove it. Used by #remove rules.
/I Ignore case.
/W Whole words.
/L Multiline ungreedy search.
/P Perl RegEx search pattern.
/R Perl RegEx replace pattern.
/X Specifies rule file with multiple Perl RegEx search and replace patterns or rules.
The rule formats:
#unuse <unit> - removes unit from the PAS uses clause
#remove [PAS: | DFM:] <property> - removes property from PAS and DFM/FMX
#migrate [PAS: | DFM:] [<class>, ... :] [<obj> .] <old> -> <new> [, <unit>]
- replaces old with new identifier,
optionally restricts migration to the specified classes,
or optionally restricts migration to the specified object
optionally adds unit to uses clause,
#replaceunit <old_unit> -> <new_unit> - Replacing a unit with a new unit in the PAS uses clause
<searchpattern> -> <replacepattern> - finds searchpattern and replace with replacepattern
Functionality of rmtdbg290.exe
rmtdbg290.exe is the remote debug server executable provided with
Embarcadero RAD Studio 13 (and earlier versions like Athens/23.0), specifically
for old-style remote debugging of Delphi and C++Builder applications
targeting 32-bit Windows platforms. Its primary purpose is to enable developers
to debug applications running on a remote machine (e.g., a test server
or another PC) from the RAD Studio IDE (Delphi or C++Builder) installed on a local
development machine. This is particularly useful for scenarios where the
application behaves differently in a remote environment, such as due to network
configurations, hardware differences, or production-like setups.
Key Features and Workflow:
Installation and Usage:
Standalone Use vs. IDE Dependency
rmtdbg290.exe can be run as a standalone application on the remote
machine without the RAD Studio IDE present on that same system. To start it:
To stop it, right-click the taskbar icon and select Exit (this
won't interrupt active sessions).
However, while it operates independently as a server process, its core
functionality is tightly integrated with the RAD Studio IDE—it doesn't
provide a user interface or debugging tools on its own. You need the IDE on the
local machine to:
In summary, it's not "strictly used by the IDE" in terms of
execution (it runs standalone on the remote side), but it serves no practical
purpose without IDE interaction for debugging. If you're not doing remote
debugging, this executable isn't needed for local development. For modern
workflows, consider the Platform Assistant instead.
RSConsole.exe
– Overview and Functionality
What
It Is:
RSConsole.exe is a command-line (console)
application included with Embarcadero RAD Studio 13 Architect. It serves as a headless build and automation
utility
that allows developers to compile, build, and manage Delphi and C++Builder
projects without
launching the full IDE.
Primary
Functionality:
Standalone
Use:
Yes, RSConsole.exe is designed to be used as a standalone application. While it is part of the RAD
Studio installation and shares core build tooling with the IDE (such as the
compiler and linker), it does not
require the Delphi or C++Builder IDE to be running. In fact, it is commonly used
in:
Typical
Usage Example:
cmd
1
RSConsole.exe -r -p=Win64 -c=Release MyProject.dproj
This
would rebuild the MyProject.dproj for the Win64 platform in
Release configuration.
Relationship
to MSBuild:
Internally, RSConsole.exe acts as a wrapper around the MSBuild
engine customized for Embarcadero projects. It ensures the correct toolchain
and environment are loaded before invoking MSBuild.
Conclusion:
RSConsole.exe is not strictly limited to IDE use—it is a powerful standalone
utility for automating builds and integrating RAD Studio projects into modern
development workflows outside the graphical IDE.
Purpose and Functionality
scktsrvr.exe acts as a socket-based middleware server that enables remote
communication between a DataSnap client
and a DataSnap application server.
In traditional 3-tier Delphi applications:
It is part of the DataSnap transport
layer and is responsible for:
⚙️ Key Features
🧭 Usage Context
🧰 Standalone vs. IDE
Usage
🚀 Typical Deployment
Scenario
🧾 Command-Line
Options
scktsrvr.exe supports a few command-line switches, though most configuration is done
via its GUI or registry:
Example:
scktsrvr.exe /install /port=211
✅ Summary
|
Aspect |
Description |
|
Executable |
scktsrvr.exe |
|
Purpose |
DataSnap/MIDAS Socket Server for
client/server communication |
|
Standalone Use |
Yes — can run independently or as a
Windows service |
|
Used by IDE |
No — it’s an auxiliary runtime tool |
|
Typical Port |
211 (configurable) |
|
Modern Equivalent |
HTTP/REST-based DataSnap
servers (no socket server needed) |
What is
SdkTransform.exe
“The SdkTransform tool
generates Object Pascal header files for iOS and OSX frameworks
(including third‑party frameworks). The tool is command‑line based
and ships with Delphi.” blogs.embarcadero.com
·
SdkTransform.exe %s --fmt
%s
and shows how it uses clang etc. blogs.embarcadero.com
“Octoid is … intended as a replacement for SDKTransform which ships with Delphi.” GitHub
This confirms that SdkTransform is (or was)
Embarcadero’s built‑in tool for Objective‑C header → Delphi
unit conversion.
Key functionalities
of SdkTransform.exe
From the above and related documentation, here are its
main features:
Is it strictly used
by the IDE, or usable standalone?
Based on what we can see:
My conclusion for
your scenario (RAD Studio 13 Architect)
Given you have RAD Studio 13 Architect:
Things to check /
tips if you want to use it manually
Usage: SdkTransform [cmds] [options] Options: --out:<output_dir> - directory where the output .pas files should be placed. --task:<xml file> - file with descrption of the task. --unit:<Unit name> - transform only framework with the specified name. --fmt - perform formatting of the output files after translation. --comments - copy the block comments from Obj-C code to the output Delphi files
TASM32.exe - Turbo Assembler (32-bit)
Description
TASM32.exe is the 32-bit version of Borland's Turbo Assembler, a command-line assembly language compiler. It translates x86 assembly language source code (.asm files) into object files (.obj) that can then be linked into executable programs.
Key Functionality
Standalone vs IDE Usage
TASM32.exe is fully functional as a standalone command-line tool and does not require the Delphi IDE to operate. You can use it independently by:
Typical Command-Line Usage:
tasm32.exe /ml /zi myfile.asm
While the Delphi IDE may invoke TASM32 behind the scenes when compiling projects that include assembly language modules or inline assembly optimization, the assembler itself is a standalone utility that predates modern RAD Studio and has been part of Borland's toolchain since the DOS era.
This makes it valuable for low-level programming, operating system development, or any situation where you need direct control over x86 machine code generation outside of the IDE environment.
Turbo Assembler Version 5.4 Copyright (c) 1988, 2010 Embarcadero Technologies, Inc. Syntax: TASM [options] source [,object] [,listing] [,xref] /a,/s Alphabetic or Source-code segment ordering /c Generate cross-reference in listing /dSYM[=VAL] Define symbol SYM = 0, or = value VAL /e,/r Emulated or Real floating-point instructions /h,/? Display this help screen /iPATH Search PATH for include files /jCMD Jam in an assembler directive CMD (eg. /jIDEAL) /kh# Hash table capacity # symbols /l,/la Generate listing: l=normal listing, la=expanded listing /ml,/mx,/mu Case sensitivity on symbols: ml=all, mx=globals, mu=none /mv# Set maximum valid length for symbols /m# Allow # multiple passes to resolve forward references /n Suppress symbol tables in listing /os,/o,/op,/oi Object code: standard, standard w/overlays, Phar Lap, IBM /p Check for code segment overrides in protected mode /q Suppress OBJ records not needed for linking /t Suppress messages if successful assembly /uxxxx Set version emulation, version xxxx /w0,/w1,/w2 Set warning level: w0=none, w1=w2=warnings on /w-xxx,/w+xxx Disable (-) or enable (+) warning xxx /x Include false conditionals in listing /z Display source line with error message /zi,/zd,/zn Debug info: zi=full, zd=line numbers only, zn=none
tdstrp32.exe - Turbo Debugger 32-bit Symbol Table
Stripper
Functionality:
tdstrp32.exe is a utility that removes debug information
from compiled binary files (executables and DLLs) and saves it to separate .tds (Turbo Debugger Symbol) files SmartBearSmartBear. This process is commonly called
"stripping" debug symbols.
Key purposes:
Standalone vs. IDE Usage:
Yes, tdstrp32.exe can be used as a standalone
application. However, it can only process one file at a time SmartBear, which makes it less
convenient for batch processing compared to alternatives like TestComplete's StripTDS utility
that support file masks and recursive processing.
You can run it from the command line to strip debug
information from any individual executable or DLL that was compiled with TD32
debug information embedded.
Typical usage scenario:
This utility has been included with RAD Studio (and its
predecessors) for many versions and continues to be part of RAD Studio 13
Architect.
Turbo Debugger 32-bit Symbol Table Stripper V5.0 (c) 1988,96 Borland Intl
Syntax: TDSTRP32 [options] exefile [outfile]
-s Symbol table is put in a file with the same name as
exefile but with an extension of .tds. If you specify an
outfile, a symbol table will be put in outfile.
If you don't specify the -s option, the symbol table is
removed from the exefile. If you specify an outfile, the
original exefile is left unchanged and a version with no
symbol table is put in outfile.
If you don't supply an extension with exefile, .exe is presumed.
If you don't supply an extension with outfile, .exe is added when
you don't use -s, and .tds is added when you do use -s.
Turbo Debugger will look for the symbol file when it loads an
exefile that does not have a symbol table.
TDUMP.EXE - Turbo Dump Utility
Overview
TDUMP.EXE is a command-line utility for examining and displaying detailed information about executable files and object files. It's a diagnostic and reverse-engineering tool that has been part of Borland/Embarcadero development tools for decades.
Primary Functionality
TDUMP analyzes and displays the internal structure of:
The tool extracts and displays:
Standalone vs. IDE Usage
TDUMP is a standalone command-line application that:
Typical Use Cases
Command-Line Usage
Typically invoked as:
tdump [options] filename
Common options include flags to show specific sections like exports (-ee), imports (-ei), headers (-h), etc.
In summary: TDUMP is a powerful standalone binary analysis tool that doesn't depend on the IDE at all—it's a utility you can use independently for examining compiled binaries.
Turbo Dump Version 6.6.2.0 Copyright (c) 1988-2022 Embarcadero Technologies, Inc.
Syntax: TDUMP [options] InputFile [ListFile] [options]
TDUMP can read its input from stdin by redirecting or piping.
TDUMP recognizes the following file types & information:
DOS Executable files, New Executable files, OS/2 Linear eXecutable files,
PE files (.EXE/.DLL/.BPL), OMF files (.OBJ & .LIB), Delphi Unit files (.DCU),
ELF files, AR files (.AR),
Borland (Giant) & Microsoft symbolic debug information
-? This help screen
-q Suppress copyright message
-a Display file in 8-bit ASCII
-a7 Display file in 7-Bit ASCII
-h[O=x] Display file in hexadecimal. Options can be:
r - Print offsets relative to starting offset
a - Print absolute offsets
=x - Beginning file offset (same as -b#)
-v (OMF and COFF only) Verbose dump of some records
-r (OMF only) Raw dump of records
-m Disable C++ de-mangling
-um Display unmangled names for mangled names found in input file (1 per line)
-ua (OMF only) Un-assemble to asm source
-w Allow wildcard file specs
-wq[#] Wildcard quiet switch (# is width)
-iID (not Elf) Include debug table(s) "ID" (ID=[?/abc...rst])
-xID (not Elf) Exclude debug table(s) "ID" (ID=[?/abc...rst])
-e Display file as Executable (EXE/DLL)
-ed Disable EXE debug info
-el Disable EXE line numbers
-ep (PE only) Disable EXE PE header display
-ex (NE only) Disable New Executable display
-ee[=x] (PE only) List Exports only from EXE/DLL (opt. x lists matches only)
-def Generate DEF file for EXE/DLL
-eiID (PE only) Include only .EXE table ID (HDR, OBJ, FIX, NAM, ENT)
-er Disable EXE relocation records
-eh (Elf only) Disable EXE headers display
-et (Elf only) Disable EXE symbol tables
-es[=x] (Elf only) Hex dump of program sections [or of section 'x']
-em[=x] (PE only) List Imports only from EXE/DLL (x lists matches only)
-em.x (PE only) List Imported modules only from EXE/DLL (x specifies search string)
-ea[:v] (PE only) Display All Exports unsorted, or (:v) sort by RVA
(default dumps only named exports, sorting on the name)
-R (PE only) Display relocation table
-s[xx] Display viewable strings. Optional xx can be:
# - minimum string length to look for (default: 4)
b# - Beginning file offset (-b# is the same as -sb#)
e# - Ending file offset
f - Format (wrap) long strings
s - Search string with case sensitivity (default: no)
u - unix format: no offset (else decimal offs., -h for hex)
=x - x = search string
-b# Offset into file for display (prefix hex with '0x')
-t# (Elf only) Ending file offset for display (prefix hex with '0x')
-o Display file as an Object
-d (OMF only) Display 32-bit debug info in OBJ or LIB
-oiID[=x]
(OMF only) Include record "ID" (ID=? for a list of record names)
-oxID[=x]
(OMF only) Exclude record "ID" (ID=? for a list of record names)
-oc (OMF only) Do CRC check
-l (OMF LIB only) Display file as an OMF Library (.LIB)
-li[=x] (OMF LIB only) Display IMPDEF comment records (x lists matches only)
-le[=x] (OMF LIB only) Display EXPDEF comment records (x lists matches only)
-lm[=x] (ELF LIB only) Display dump of members (x lists matches only)
-lh (ELF LIB only) Display list of members in archive
-lt (ELF LIB only) Display exported symbols in archive
-C (COFF only) Display COFF OBJ or LIB file
-M (MACH only) Display MACH file
-ns Disable support for redirecting stdin
🔬 TDUMP64.EXE: The 64-bit
File Dumping Utility
TDUMP64.EXE is the 64-bit Windows file dumping utility included with Embarcadero RAD Studio (Delphi and C++Builder).
Its primary functionality is to produce a file dump that reveals the structure and contents of a file. It's essentially a command-line tool for inspecting the internal structure of various file formats.
💻 Standalone vs. IDE Use
TDUMP64.EXE can be used as a standalone command-line application.
It is one of the many Command-Line Utilities provided with RAD Studio. While its original intent is to assist developers working with the Delphi or C++Builder toolchains (which are part of the RAD Studio IDE), it is not strictly tied to the IDE itself.
You can execute TDUMP64.EXE from the Windows Command Prompt or PowerShell (provided the bin directory is in your system's PATH or you navigate to it) to dump information from any supported 64-bit executable or object/library file.
Turbo Dump Version 6.6.2.0 Copyright (c) 1988-2022 Embarcadero Technologies, Inc.
Syntax: TDUMP [options] InputFile [ListFile] [options]
TDUMP can read its input from stdin by redirecting or piping.
TDUMP recognizes the following file types & information:
DOS Executable files, New Executable files, OS/2 Linear eXecutable files,
PE files (.EXE/.DLL/.BPL), OMF files (.OBJ & .LIB), Delphi Unit files (.DCU),
ELF files, AR files (.AR),
Borland (Giant) & Microsoft symbolic debug information
-? This help screen
-q Suppress copyright message
-a Display file in 8-bit ASCII
-a7 Display file in 7-Bit ASCII
-h[O=x] Display file in hexadecimal. Options can be:
r - Print offsets relative to starting offset
a - Print absolute offsets
=x - Beginning file offset (same as -b#)
-v (OMF and COFF only) Verbose dump of some records
-r (OMF only) Raw dump of records
-m Disable C++ de-mangling
-um Display unmangled names for mangled names found in input file (1 per line)
-ua (OMF only) Un-assemble to asm source
-w Allow wildcard file specs
-wq[#] Wildcard quiet switch (# is width)
-iID (not Elf) Include debug table(s) "ID" (ID=[?/abc...rst])
-xID (not Elf) Exclude debug table(s) "ID" (ID=[?/abc...rst])
-e Display file as Executable (EXE/DLL)
-ed Disable EXE debug info
-el Disable EXE line numbers
-ep (PE only) Disable EXE PE header display
-ex (NE only) Disable New Executable display
-ee[=x] (PE only) List Exports only from EXE/DLL (opt. x lists matches only)
-def Generate DEF file for EXE/DLL
-eiID (PE only) Include only .EXE table ID (HDR, OBJ, FIX, NAM, ENT)
-er Disable EXE relocation records
-eh (Elf only) Disable EXE headers display
-et (Elf only) Disable EXE symbol tables
-es[=x] (Elf only) Hex dump of program sections [or of section 'x']
-em[=x] (PE only) List Imports only from EXE/DLL (x lists matches only)
-em.x (PE only) List Imported modules only from EXE/DLL (x specifies search string)
-ea[:v] (PE only) Display All Exports unsorted, or (:v) sort by RVA
(default dumps only named exports, sorting on the name)
-R (PE only) Display relocation table
-s[xx] Display viewable strings. Optional xx can be:
# - minimum string length to look for (default: 4)
b# - Beginning file offset (-b# is the same as -sb#)
e# - Ending file offset
f - Format (wrap) long strings
s - Search string with case sensitivity (default: no)
u - unix format: no offset (else decimal offs., -h for hex)
=x - x = search string
-b# Offset into file for display (prefix hex with '0x')
-t# (Elf only) Ending file offset for display (prefix hex with '0x')
-o Display file as an Object
-d (OMF only) Display 32-bit debug info in OBJ or LIB
-oiID[=x]
(OMF only) Include record "ID" (ID=? for a list of record names)
-oxID[=x]
(OMF only) Exclude record "ID" (ID=? for a list of record names)
-oc (OMF only) Do CRC check
-l (OMF LIB only) Display file as an OMF Library (.LIB)
-li[=x] (OMF LIB only) Display IMPDEF comment records (x lists matches only)
-le[=x] (OMF LIB only) Display EXPDEF comment records (x lists matches only)
-lm[=x] (ELF LIB only) Display dump of members (x lists matches only)
-lh (ELF LIB only) Display list of members in archive
-lt (ELF LIB only) Display exported symbols in archive
-C (COFF only) Display COFF OBJ or LIB file
-M (MACH only) Display MACH file
-ns Disable support for redirecting stdin
TLIB.EXE - Turbo Librarian
TLIB.EXE is the Turbo Librarian utility, a
command-line tool for managing static library files (.LIB) in Embarcadero RAD
Studio.
Primary Functionality
TLIB is used to create, modify, and maintain object module
libraries (.LIB files). Its main operations include:
Standalone vs IDE Usage
TLIB is a fully standalone command-line application
that can be used independently of the Delphi IDE. While the IDE may invoke it
internally during the build process when working with static libraries, you can
use it directly from:
Typical Usage
The basic syntax is:
tlib libraryname
[/C] [/E] [operations] [, listfile]
Common operations include:
Use Cases
TLIB is particularly useful when you need to:
This is a classic utility that has been part of
Borland/Embarcadero development tools for decades, originating from the Turbo
C/C++ era.
TLIB 7.1 Copyright (c) 1987-2019 Embarcadero Technologies, Inc.
Syntax: TLIB options libname [commands | files], listfile
libname library file pathname
commands sequence of operations to be performed (optional)
listfile file name for listing file (optional)
A command is of the form: <symbol>module, where <symbol> is:
+ add module to the library
- delete module from the library
* extract module without removing it
-+ or +- update module in library
-* or *- extract module and remove it
Set the default action for modules without a specified command:
/a add module to the library
/d delete module from library
/e extract module without removal
/u update module in library
/x extract module and remove it from library
/N disable support of command syntax
/O enable support of command syntax
/L write listfile to stdout
/C case-sensitive library
/PSIZE set the library page size to SIZE
/0 purge comment records
/A write GNU AR format archive with ELF objs
/B bare response files (newline terminated)
/F force new library
/8 output encoding is utf-8
Use @filepath to continue from file "filepath".
Use '&' at end of a line to continue onto the next line.
tlib64.exe – Summary and Functionality
tlib64.exe is a command-line utility that ships with
Embarcadero RAD Studio (including Delphi and C++Builder). It is the 64-bit
version of the Type Library Importer tool.
Primary Purpose:
tlib64.exe imports COM (Component Object Model) type
libraries (typically .tlb files or type libraries
embedded in .dll, .ocx, or .exe
files) and generates Delphi or C++ header files that allow RAD Studio projects
to interact with COM objects.
Key Functions:
Usage Context:
Example Command-Line Use:
cmd
1
tlib64.exe -P "C:\Path\To\MyLibrary.tlb"
This would generate a Delphi unit (MyLibrary_TLB.pas)
from the specified type library.
Notes:
Conclusion:
tlib64.exe is not strictly limited to IDE use—it is a
standalone command-line utility that can be used independently for automation,
scripting, or custom build processes, though it is most commonly encountered
through the IDE’s type library import wizard.
TLIB64 7.0 Copyright (c) 1987-2019 Embarcadero Technologies, Inc.
Syntax: TLIB options libname [commands | files], listfile
libname library file pathname
commands sequence of operations to be performed (optional)
listfile file name for listing file (optional)
A command is of the form: <symbol>module, where <symbol> is:
+ add module to the library
- delete module from the library
* extract module without removing it
-+ or +- update module in library
-* or *- extract module and remove it
Set the default action for modules without a specified command:
/a add module to the library
/d delete module from library
/e extract module without removal
/u update module in library
/x extract module and remove it from library
/N disable support of command syntax
/O enable support of command syntax
/L write listfile to stdout
/C case-sensitive library
/PSIZE set the library page size to SIZE
/0 purge comment records
/A write GNU AR format archive with ELF objs
/B bare response files (newline terminated)
/F force new library
/8 output encoding is utf-8
Use @filepath to continue from file "filepath".
Use '&' at end of a line to continue onto the next line.
💻 tlibimp.exe
Functionality Summary
The tlibimp.exe utility in Embarcadero RAD Studio, which
includes Delphi and C++Builder, is the Type Library Import tool.
🛠️ Usage
tlibimp.exe can be used both by the IDE and as a standalone
command-line application.
1. Used by the Delphi IDE
The functionality of tlibimp.exe is incorporated into the
Delphi IDE through the Import Component Wizard (specifically when
you choose to import a Type Library or an ActiveX Control). When you use this
wizard, the IDE internally invokes tlibimp.exe to perform the generation and
often adds the resulting files to your project.
2. Standalone Application
Yes, tlibimp.exe can be used as a standalone command-line
application.
Using it from the command line offers additional
configuration options that may not be available within the IDE's Import
Component Wizard. This is often necessary for:
The basic command-line usage involves specifying the type
library and options for the output file (e.g., -P for Pascal output):
tlibimp.exe [options] <TypeLibraryFile>
Embarcadero TLIBIMP Version 12.16581
Copyright(c) 1995-2025 Embarcadero Technologies, Inc.
Syntax: TLIBIMP [options] <typelibfile>
Files to Generate (Required): Output File Options:
-C Generate C++ Import file -D<path> Output directory path
-P Generate PASCAL Import file -Fe<name> TLB suffix (-Fe- none)
-I Generate .ridl Import file -Ft<name> TLB filename (no suffix)
-Ce<name> OCX suffix (-Ce- none)
-Co<name> OCX filename (no suffix)
Customize code generated:
-Ha+ Create IDE component for Controls -Hpa<name> Set palette name
-Hs+ Create IDE component for Servers -Hps<name> Set palette name
-Hr+ Generate component registration
C++ options: PASCAL options:
-Cd+ Generate dispinterfaces -Ps+ Map dual HRESULT to safecall
-Cm- Map disp interfaces to dual -Pt- Map all HRESULT to safecall
-Cn<name> Set namespace name
-Cs- declspec(__selectany) for GUIDs MISC options:
-Ct+ Force the use of a _TLB file -O+ Generate CoClassCreator wrappers
-Cu+ Expose namespace with 'using' -R+ Process dependent type libraries
-Cv+ BCB4-style server events -XM- Use MS-style getter/setter
-Cw- Use disp. in Control wrappers -W+ Emit warnings in files
-Wc+ Emit comments in files
Ignore Flags: -Ya- All special flags, -Yc+ [CanCreate],
-Yh- [Hidden], -Yp- [Predefined], -Yr- [Restricted]
touch.exe in Embarcadero RAD Studio 13 Architect is a small command-line
utility similar in purpose to the Unix/Linux touch command.
Functionality Summary
touch.exe is used to update the timestamp (date and time) of a file—specifically
its last modified and/or last accessed times. If the specified
file does not exist, it can optionally create an empty file.
Typical uses include:
Integration with Delphi / RAD Studio
Inside RAD Studio, touch.exe is mainly used internally by the build tools and project make systems—for
instance, the make, dcc32, or msbuild processes—to refresh file timestamps
during incremental builds or dependency checking.
Standalone Use
touch.exe can be used as a standalone application from the command line or
within batch files.
You can run it independently without the Delphi IDE. For example:
touch.exe MyFile.pas
This command updates the modification timestamp of MyFile.pas to the current time.
If the file doesn’t exist, depending on the implementation and command-line
options, it may create a new zero-length file.
Typical Command-Line Syntax (varies
slightly by version)
touch [options] filename
Common options (if supported):
Summary Table
|
Attribute |
Description |
|
Executable |
touch.exe |
|
Purpose |
Update or create files with a
specific timestamp |
|
Used by Delphi IDE? |
Yes, for build dependency management |
|
Can be standalone? |
Yes, fully usable from the command
line |
|
Typical Users |
Build automation scripts, developers
managing file timestamps |
✅ In short:
touch.exe is a general-purpose file timestamp
utility bundled with RAD Studio, used both internally by the IDE’s build tools
and freely usable as a standalone command-line tool.
Touch Version 5.0 Copyright (c) 1995-2010 Embarcadero Technologies, Inc.
Usage: TOUCH [options] [filename(s)...]
This utility sets the date and time of the listed files to be the current
(or specified) date and time. (wild cards * and ? ok)
-a, -f, -m are quietly ignored for Unix compatibility.
-c does not create the file if nonexistent (default is to create it)
-D allow directory names to be touched (when wildcards specified)
-h detailed help
-n lists files, doesn't change the date/time (for testing rsp files)
-rfilename sets the specified files to the same date/time as 'filename'
-s recurse through subdirectories
-t and -d can be used with any of the following date and time formats:
nnddhhmm[yy] Unix syntax sets date&time (nn=month, year is optional)
hh:mm[:ss] Borland syntax sets time only (seconds are optional)
mm/dd/yy Borland syntax sets date only (mm-dd-yy also works)
ranges: month:01-12, day:01-31, hour:00-23, min:00-59, sec:00-59,
year:the last 2 digits of the year representing 1980-2079
-v verbose mode, prints out the files processed
-w warn about unlocatable files and bad time values (default is to warn)
@xxxx specifies response file xxxx where any combinations of options or files
can be listed (up to 10 levels of response file nesting allowed).
Long file names must be quoted if spaces are embedded in them (in both response
files and on the command line)
tregsvr.exe - Type Library
Registration Server
Overview
tregsvr.exe is a Type Library Registration utility included with Embarcadero
RAD Studio. It's used to register and unregister COM type libraries and ActiveX
controls in the Windows registry.
Primary Functionality
Standalone vs. IDE Usage
This is a standalone command-line application that can be used independently of the
Delphi IDE:
Typical Use Cases
Similar to Windows regsvr32.exe
It functions similarly to the Windows system utility regsvr32.exe, but is specifically tailored for
Embarcadero's development tools and may handle certain Delphi-specific type
library formats or registration requirements.
You can use it from any command prompt or script without launching the
IDE.
Summary
/ Functional Description
VCLStyleViewer.exe is a standalone
utility application designed to preview, manage, and test the visual appearance
of VCL Styles (Visual Component Library Styles) on real-world
Delphi forms.
Its primary function is
to act as a style viewer and "playground," allowing developers to:
Is it
an IDE Tool or a Standalone Application?
VCLStyleViewer.exe is
primarily a standalone application.
While its purpose is
tightly coupled with the functionality of the Delphi IDE, it runs as a
completely separate process (VCLStyleViewer.exe). You do not need to
have RAD Studio running to use it.
How it Relates to the
Delphi IDE:
Typical
Workflow for a Developer
Key
Takeaway
VCLStyleViewer.exe is an
essential, standalone utility for any Delphi developer using VCL Styles. It
dramatically speeds up the UI design process by providing an immediate, visual
catalog of available styles applied to realistic form layouts, all without
needing to compile the main project.
VSF2FM.EXE Functionality Summary
The executable vsf2fm.exe is a command-line utility for Embarcadero RAD Studio (including your RAD Studio 13 Architect version) whose primary function is to convert a VCL (Visual Component Library) style file to a FireMonkey (FMX) style file.
Functionality Description
Standalone Usage
Example Command Structure: vsf2fm <file or folder> [optional parameters]
Win32ProxyDownloader.exe -
Functionality Summary
Based on its name and location within RAD Studio 13, Win32ProxyDownloader.exe
is a utility application designed to handle download operations through proxy
servers specifically for Win32 platform targets.
Primary Functionality
This executable likely serves as a specialized downloader that:
IDE vs Standalone Usage
Primarily IDE-integrated, but potentially standalone-capable:
Typical Context
This tool exists because many corporate development environments sit
behind proxy servers that require authentication. Rather than embedding proxy
logic throughout the IDE, Embarcadero created a dedicated utility to handle
these network operations for Win32-related downloads.
To determine if it supports standalone usage, you could try running it from the
command line with --help or /help flags to see if it displays usage information, though
it may simply show an error if it expects to be called only by the IDE.
WIN32 DATASNAP PROXY DOWNLOADER HELP
COMMAND:
Win32ProxyDownloader.exe [-protocol protocol] -language language_platform
[-output output_folder] [-host hostname]
OPTIONS:
-language <language> (required) The language_platform identifier.
e.g. java_android or objectivec_ios42
-host <hostname:port> (optional) Hostname and port where the server is
running. Default is localhost:80
-protocol <http|https> (optional) protocol can be http or https. Default http
-output <local_proxy_path> (optional) is the full path where the proxy must
be downloaded. Default current_folder
EXAMPLES:
Win32ProxyDownloader.exe -language java_android
Win32ProxyDownloader.exe -host localhost:8080 -language java_android
-output c:\
Win32ProxyDownloader.exe -protocol http -language java_android -output folder
WSDLImp.exe is a command-line utility
included with Embarcadero RAD Studio (including version 13 Architect) that is
used to import
Web Services Description Language (WSDL) files and generate Delphi or C++
client-side proxy code
for consuming SOAP-based web services.
Key Functionality:
Standalone Use:
Yes,
WSDLImp.exe can be used as a standalone command-line application.
It does not require the Delphi IDE to run.
Developers often use it in:
However,
it is also integrated
into the Delphi IDE
(via "Component
> Import WSDL" or
similar menu options), where the IDE internally invokes WSDLImp.exe with appropriate parameters and
automatically adds the generated units to the current project.
Typical Usage (Command
Line):
bash
1
WSDLImp.exe -OcMyService
http://example.com/MyService.wsdl
This
would generate a Delphi unit (e.g., MyService.pas) containing the client proxy
classes.
Summary:
WSDLImp.exe is a standalone
WSDL-to-code importer
primarily for generating SOAP web service client stubs in Delphi or C++. While
tightly integrated with the RAD Studio IDE for convenience, it functions
independently and can be scripted or called manually outside the IDE
environment.
Embarcadero WSDLIMP Version 2.41 - $Rev: 122014 $
Copyright (c) 2010-2025 Embarcadero Technologies, Inc.
Usage: WSDLIMP [options] <WSDL[File|URL]>
Language Generation Options:
-C Generate C++ code
-P Generate Pascal code
Code Generation Options [ -option{+|-} default shown ]:
-O2- Merge duplicate types
-Oa+ Process nillable and optional elements
-Ob- Use Setters and Getters for properties
-Od+ Generate destructors for remotable types
-Oe+ Generate scoped enumerations
-Of+ Import Fault Types
-Og- Generate interface GUIDs using COM API
-Oh+ Import Header Types
-Oi+ Generate warning comments
-Oj+ Validate Enumeration members
-Ok- Map pure collections to wrapper class types
-Ol- Emit wrapper element Types
-Om- Allow out parameters
-Oo+ One out parameter is return value
-Op+ Process included and imported schemas
-Or- Generate alias for the element of pure collections
-Os- Generate server implementation instead of client proxies
-Ot+ Do not emit unused types
-Ou+ Unwrap wrapper elements (wrapped doc|lit services)
-Ov+ Generate verbose information about types and interfaces
-Ow- Map String to WideString
-Ox+ Generate class aliases as class types
-Oz- Use TXSxxxx classes for simple nillable types
SOAP Version Options:
Automatically determines SOAP version if not forced. (Recommended)
-SOAP11 Process only WSDL Binding extensions for the SOAP 1.1 Protocol
-SOAP12 Process only WSDL Binding extensions for the SOAP 1.2 Protocol
File options:
-D<path> Output directory path
-=+ Output filename after '=' in URL
@<Resp> Response file with list of WSDL
Proxy/Server Authentication:
-user:userName -pass:Password [-proxy:Proxy]
XMLMapper.exe - Functionality Summary
XMLMapper is a utility that allows
you to define mappings between XML documents/schemas and client dataset data
packets in three ways: from an existing XML schema to a client dataset you
define (useful for creating database applications with existing XML schemas),
from an existing data packet to a new XML schema (useful for exposing database
information in XML for business-to-business communication), and between an
existing XML schema and an existing data packet (when both describe the same
information) Embarcadero.
Key Capabilities:
Dependencies:
XMLMapper requires two DLLs
(midas.dll and msxml.dll) to function, and msxml.dll must be registered as a
COM server using Regsvr32.exe Embarcadero
Standalone vs. IDE Usage
Yes, xmlmapper.exe can be used as a standalone
application. It operates at design time to define mappings between XML
documents and data packets Embarcadero, but it's a separate executable with its own
GUI that you can launch independently from the IDE. You don't need to have the
IDE open to use it - you can run it directly from the bin directory to create
transformation files that your Delphi applications will use at runtime.