LinuxCommandLibrary

ar

TLDR

Create archive from files

$ ar rcs [archive.a] [file1.o] [file2.o]
copy
List archive contents
$ ar t [archive.a]
copy
Extract all files
$ ar x [archive.a]
copy
Extract specific file
$ ar x [archive.a] [file.o]
copy
Add file to archive
$ ar r [archive.a] [newfile.o]
copy
Delete file from archive
$ ar d [archive.a] [file.o]
copy

SYNOPSIS

ar [-X3264] [-]operation[modifiers] archive [files_...]

DESCRIPTION

ar creates, modifies, and extracts from archives. It's primarily used to create static libraries (.a files) from object files for use with the linker.
Archives contain multiple files with a table of contents for quick access. Unlike tar, ar is optimized for random access to individual members.

PARAMETERS

r

Insert (replace) files
c
Create archive
s
Create/update archive index (ranlib)
t
Table of contents
x
Extract files
d
Delete files
q
Quick append (no checking)
v
Verbose output
u
Update only newer files

CAVEATS

Primarily used for static libraries. For general archiving, use tar instead. Archive index (s) is needed for linker to use the library. No compression.

HISTORY

ar dates back to early Unix in the 1970s. It predates tar and was originally a general-purpose archiver before becoming specialized for library creation.

SEE ALSO

ranlib(1), nm(1), tar(1), ld(1)

Copied to clipboard