Building
Frida Building
Prerequisites
| Requirement | Details |
|---|---|
| C/C++ toolchain | Platform default (GCC/Clang) |
| Node.js | >= 18 |
| Git | Any recent version |
Ubuntu / Debian — install all prerequisites:
1sudo apt-get install build-essential git lib32stdc++-9-dev \
2 libc6-dev-i386 nodejs npm
Get Source
1git clone https://github.com/frida/frida.git
2cd frida
Native Build
1make # builds into ./build by default
2make install # installs to system prefix
Configure a custom install prefix:
1./configure --prefix=/path/to/prefix
2make
3make install
Passing Meson Options
Extra options are forwarded to Meson with -- separator:
1./configure -- first-option second-option …
Options can target specific subprojects using the -D<subproject>:<option>=<value> syntax:
1./configure -- \
2 -Dfrida-gum:devkits=gum,gumjs \
3 -Dfrida-core:devkits=core
Available options for each subproject are listed in their meson.options file inside the subprojects/ directory.
Cross-Compilation Targets
Use --host=<target-triplet> to cross-compile. The host triplet controls toolchain selection and sysroot.
iOS / watchOS / tvOS
1./configure --host=ios-arm64
2./configure --host=watchos-arm64
3./configure --host=tvos-arm64
4./configure --host=ios-arm64-simulator # simulator variant
Android
1./configure --host=android-arm64
Raspberry Pi (ARM Linux)
Install the cross-compiler first:
1sudo apt-get install g++-arm-linux-gnueabihf
Then configure:
1./configure --host=arm-linux-gnueabihf
2make
Out-of-Tree Builds
Multiple configurations can be built simultaneously from one source tree by running configure from separate empty directories outside the source:
1mkdir build-ios
2cd build-ios
3../frida/configure --host=ios-arm64
4make
Key Paths
| Path | Purpose |
|---|---|
./build/ | Default build output directory |
subprojects/*/meson.options | Per-subproject configurable options |
https://github.com/frida/frida.git | Main repository |