Integrate the SDK into your application

To integrate the SDK, you need to set up your project files and integrate the libraries. Since the SDK is based on the CMakecall_made, your workflow depends on whether or not your project is CMake-based as well.

CMake-based projects

  1. Unzip the SDK to the folder baltech_sdk.
  2. Place the folder baltech_sdk in the root of your project folder.
  3. Add the following lines to CMakeLists.txt:

Non-CMake-based projects


macOS and Linux only: Install CMakecall_made on your computer. Since the SDK is based on CMake, you need it to generate the project files.

For Windows, the project files are already included in the SDK, so you don't have to install CMake in this case.


  1. Unzip the SDK to the folder baltech_sdk.
  2. Place the folder baltech_sdk in the root of your project folder.
  3. Change to XXX/<your project folder>/baltech_sdk and run the following command: XXX/<your project folder>/baltech_sdk$cmake .;cmake --build .
  4. In the project file, add the following directory to the include file path:
    XXX/<your project folder>/baltech_sdk/brp_lib/inc
  5. Windows only:
    Add the following libraries to your project:

    • XXX/baltech_sdk/binaries/winXX/static-libs/release/baltech_api.lib
    • XXX/baltech_sdk/binaries/winXX/static-libs/release/brp_lib.lib
  6. Add the path XXX/baltech_sdk/binaries/<os name>/release to the shared library/dll search path.

    • For Windows, this is the environment variable PATH.
    • Fow macOS and Linux, this is environment variable LD_LIBRARY_PATH.

Additional steps for macOS

If you want to sign the application, e.g. to publish it in the Mac App Store, you need to add the entitlement

For more details, please see the Apple documentation for this entitlementcall_made and entitlements in generalcall_made.

Additional steps for Linux

For Linux, the following additional steps are required for both CMake-based and non-CMake-based projects:

  • Make sure the development libraries for udev are installed (e.g. libudev-devcall_made on Ubuntu 18.04LTS).
  • Do you use USB HID, virtual COM port, or RS-232, and your process isn't running as root? Then assign the process permissions to access the reader.