-
Notifications
You must be signed in to change notification settings - Fork 25
Troubleshooting
-
If a wrapper exits with the following message, pass a profile explicitly.
error: a nix profile is required. pass it with -p or --profile.Example:
./nix-android.sh -p android-r27d -
If an Android build fails with
ANDROID_TOOLCHAIN is not set,ANDROID_NDK_ROOTis missing, or a similar SDK/NDK error, the Nix wrapper supplies Android SDK platform 34, build tools 35.0.0, CMake 3.22.1 and NDK r27d:./nix-android.sh -p android-r27dIf you use
scripts/start-android.shdirectly, setANDROID_SDK_ROOTandANDROID_NDK_ROOTfirst, or pass a valid toolchain with--toolchain=path. -
If an Apple build fails because Xcode cannot be found, or because the detected Xcode version is too old, select a supported Xcode installation. The Nix
xcode26profile requires Xcode 26.x or newer.export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer ./nix-ios.sh -p xcode26If you use
scripts/start-ios.sh,scripts/start-macos.sh,scripts/start-tvos.shorscripts/start-visionos.shdirectly, the sameDEVELOPER_DIRorxcode-selectsetup must be valid in your shell before running the script. -
If a build fails after source files were partially downloaded, patched, or generated, rebuild only the affected library first. The top-level scripts support these advanced options:
-
--rebuild-LIBRARYbuilds a library even if it is already installed. -
--reconf-LIBRARYregenerates Autotools build files before building that library. -
--redownload-LIBRARYdownloads the source again even if it is already present.
--rebuild-LIBRARYdoes not enable the library. Keep the matching--enable-LIBRARYoption in the same command when the library is optional. -
-
If
gnutlsor another Autotools-based source fails with a missing generated file, such as:CC parse-datetime.lo clang: error: no such file or directory: 'parse-datetime.c' clang: error: no input filesfirst make sure the build is using a new enough
bison. The Nix wrappers providebisonand write the selected tool path tobuild.log.With Nix:
./nix-android.sh -p android-r27d --enable-gnutls --reconf-gnutls --rebuild-gnutlsWith host tools:
export BISON=/path/to/bison "$BISON" --version ./scripts/start-android.sh --enable-gnutls --reconf-gnutls --rebuild-gnutlsIf the source tree was generated before fixing
bison, keep--reconf-LIBRARYin the next build so the generated files are recreated. -
If a Meson based library fails with an error like the following, the build is usually using the wrong host Meson or missing the generated cross file.
meson.build:25:0: ERROR: Could not invoke sanity test executable: [Errno 8] Exec format error: '.../sanitycheckc.exe'The Nix wrappers provide
mesonandninja.With Nix:
./nix-android.sh -p android-r27d --enable-dav1d --rebuild-dav1dWith host tools:
export MESON=/path/to/meson "$MESON" --version ninja --version ./scripts/start-android.sh --enable-dav1d --rebuild-dav1dIf the previous attempt left a stale source checkout, add
--redownload-dav1d; otherwise--rebuild-dav1dis enough because thedav1dbuild directory is recreated on each run. -
If
autoreconffails becauseautopointcannot be found:Can't exec "autopoint": No such file or directory autoreconf: autopoint is needed because this package uses Gettextthe Nix profiles include
gettextand setACLOCAL_PATH.With Nix:
./nix-ios.sh -p xcode26 --enable-gnutls --reconf-gnutls --rebuild-gnutlsWith host tools, install
gettext, make sureautopointis inPATH, and setACLOCAL_PATHif your package manager does not expose gettext's m4 files automatically:export PATH="/usr/local/opt/gettext/bin:$PATH" export ACLOCAL_PATH="/usr/local/opt/gettext/share/aclocal:$ACLOCAL_PATH" which autopoint ./scripts/start-ios.sh --enable-gnutls --reconf-gnutls --rebuild-gnutlsOn Apple Silicon Homebrew installations, replace
/usr/local/opt/gettextwith/opt/homebrew/opt/gettext. On Linux, use the gettext andautopointpaths installed by your distribution.
-
If
gnutlsfails with the following error, rebuild its crypto dependencies and thengnutls.configure: error: Nettle lacks the required rsa_sec_decrypt functionExample for Android:
./nix-android.sh -p android-r27d --enable-gnutls --rebuild-gmp --rebuild-nettle --rebuild-gnutlsIf the source checkout is stale or submodules were interrupted, add
--redownload-nettle --redownload-gnutls. -
If
kvazaarfails on a first build or after an interrupted Autotools generation, rebuild it with a freshautoreconf../nix-android.sh -p android-r27d --enable-kvazaar --reconf-kvazaar --rebuild-kvazaarThe current build scripts already run
kvazaarwithout parallelmake, so repeated failures usually indicate stale generated files rather than a parallel build race. -
If
fontconfigfails with unresolveduuid_*symbols, rebuildlibuuidandfontconfig.undefined reference to 'uuid_unparse' undefined reference to 'uuid_parse' undefined reference to 'uuid_copy'Android example:
./nix-android.sh -p android-r27d --enable-fontconfig --rebuild-libuuid --rebuild-fontconfigApple builds use platform-specific
libuuidlibrary names:./nix-ios.sh -p xcode26 --enable-fontconfig --rebuild-ios-libuuid --rebuild-fontconfig ./nix-macos.sh -p xcode26 --enable-fontconfig --rebuild-macos-libuuid --rebuild-fontconfig ./nix-tvos.sh -p xcode26 --enable-fontconfig --rebuild-tvos-libuuid --rebuild-fontconfig ./nix-visionos.sh -p xcode26 --enable-fontconfig --rebuild-visionos-libuuid --rebuild-fontconfigIf
libassis enabled in the same build, include--rebuild-libassas well because it depends onfontconfig. -
If
xvidcorefails with a filesystem error such asinstall: mkdir ... File exists, rerun the build forxvidcore../nix-android.sh -p android-r27d --enable-gpl --enable-xvidcore --rebuild-xvidcoreThe current scripts build
xvidcoreserially. This error is normally left over from an interrupted or stale build directory.
Use --redownload-LIBRARY when a source checkout is corrupted, a submodule update failed, or a library was downloaded before the current ffmpeg-kit-next patch set was applied. Use --reconf-LIBRARY when configure, Makefile.in, aclocal.m4, or other generated Autotools files are stale. Use --rebuild-LIBRARY when installed artifacts under prebuilt are stale or were built with different options.
Copyright (c) 2026 FFmpegKitNext
- Status
- Versions
- Changelog
- Project Layout
- Using
- Building
- External Libraries
- Patents
- License