NFIQ 2 supports multiple platforms with varying levels of complexity. This page details platform-specific considerations and workarounds.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/usnistgov/NFIQ2/llms.txt
Use this file to discover all available pages before exploring further.
Windows
Build Requirements
- Visual Studio 2015 or later (2019/2022 recommended)
- CMake 3.3+
- vcpkg for dependency management
Using vcpkg
Windows builds require vcpkg to managelibbiomeval dependencies.
Architecture Selection
Use the-A flag to specify the target architecture:
Static vs. Dynamic Linking
For standalone executables without external DLL dependencies, use static triplets:Common Issues
vcpkg not found
vcpkg not found
Ensure the
CMAKE_TOOLCHAIN_FILE path points to your vcpkg installation:Missing DLLs at runtime
Missing DLLs at runtime
Use static triplets (
x64-windows-static) to avoid DLL dependencies, or copy required DLLs from vcpkg’s installed directory.Linker errors with mixed architectures
Linker errors with mixed architectures
Ensure
VCPKG_TARGET_TRIPLET matches the CMake architecture:-A x64→x64-windows-static-A Win32→x86-windows-static
macOS
Build Requirements
- Xcode 10+ (Xcode 15+ recommended)
- Command Line Tools:
xcode-select --install - MacPorts or Homebrew for dependencies
Using MacPorts (Recommended)
Universal Binary (Intel + Apple Silicon)
To create a universal binary that runs natively on both Intel and Apple Silicon Macs:Architecture-Specific Builds
Known Limitations
Common Issues
OpenSSL not found
OpenSSL not found
Specify the OpenSSL root directory:
Dynamic library dependencies in release builds
Dynamic library dependencies in release builds
For distribution, force static dependencies:
Code signing errors
Code signing errors
If distributing signed packages:
Linux
Supported Distributions
NFIQ 2 has been tested on:- Ubuntu 18.04, 20.04, 22.04, 24.04
- Debian 10, 11, 12
- RHEL / CentOS / Rocky Linux 7, 8, 9
- Fedora 36+
Build Requirements
- Ubuntu/Debian
- RHEL/CentOS/Fedora
Standard Build
Creating Distribution Packages
- Debian (.deb)
- Red Hat (.rpm)
nfiq2_{version}-1_{arch}.deb(CLI)nfiq2-dev_{version}-1_{arch}.deb(development files)
Architecture
Architecture is typically auto-detected. For explicit control:Android
NFIQ 2 supports Android NDK builds for ARM and x86 architectures.Build Requirements
- Android NDK (r21e or later recommended)
- CMake 3.10+
Using Android Toolchain
Supported ABIs
Minimum API Level
NFIQ 2 supports Android API level 21 (Android 5.0 Lollipop) and later:The CLI is typically not built for Android. Use
-DBUILD_NFIQ2_CLI=OFF for library-only builds.iOS
NFIQ 2 supports iOS builds for both physical devices and simulators.Build Requirements
- Xcode 10+
- CMake 3.14+
- iOS Deployment Target: iOS 12.0+
Using iOS Toolchain
Platform Options
Bitcode
To enable bitcode for App Store submission:The CLI is not supported on iOS. Always use
-DBUILD_NFIQ2_CLI=OFF for iOS builds.Cross-Compilation
For cross-compiling to other platforms, specify a CMake toolchain file:Next Steps
Library Build
Build the NFIQ 2 library only
CLI Build
Build with command-line interface