# Use the linker This document describes the Qualcomm® Snapdragon™ Arm LLVM linker, including commands and options as well as linker map and script files. The linker merges object and archive files into executable images, relocates program data to its final location in memory, and resolves symbol references within and between files. The linker accepts files built for Arm and Arch64 architecture. ## Start the linker To start the linker from a command line, enter the following: **ld.qcld [<option> …] [<input\_object\_file> …]** The linker is invoked like the GNU linker, and it supports the most commonly used options in the GNU linker. Arguments that are specified on the command line without an option switch are treated as the names of input object files. If the linker does not recognize an input file as an object file, it treats the file as a linker script (see [Linker scripts](https://docs.qualcomm.com/doc/80-VB419-102/topic/linker_scripts.html)). The linker command can read its arguments from a text file rather than from the command line. When starting the linker, specify file name after an @ symbol: **ld.qcld @<file>** > > > Note > > > The arm-link command name is a symbolic link to ld.qcld, > and it can be used when starting the linker. > > > To specify the one or more target architectures on the command line, use > -march. For example, to specify the AArch64 architecture (instead of > using the default target of Arm): **ld.qcld -march=aarch64 <other\_arguments> …** > > > Note > > > In the Snapdragon LLVM Arm compiler, the clang driver > recognizes the -fuse-ld=qcld option as a directive to use ld.qcld > as the system linker. ## Options The linker accepts command options, which are prefixed with one or two hyphens, on the command line. To list all linker options, enter the following: ld.qcld -help Copy to clipboard The slashes (/) in certain options indicate aliases for those options. ### [General options](https://docs.qualcomm.com/doc/80-VB419-102/topic/use_the_linker.html#id1) -build-id=