Issue:

I am evaluating IDKit SDK and my application says "Unable to load idkit.dll" when I call any of the functions from the SDK. What should I do?


Cause 1:

Windows

This error is caused by the fact that an idkit.dll library is not present inside the C:\Windows\System32 folder

which is the default system directory for most of the dynamic libraries. The library is copied into this folder during the installation of the SDK. Maybe you modified this folder recently and removed the library or the SDK installation was unsuccessful. 

Linux

The same issue as for windows platforms but the system folder for a dynamic library libidkit.so is different and that is /usr/lib folder. Maybe you have not run install.sh script (can be found inside the SDK package in bin/ folderwithout sudo privileges.


Note: 64-bit Windows also supports compatibility for 32-bit applications. In case you have such a machine and you want to develop a 32-bit application with our SDK, the system folder for idkit.dll (of course the library has to be 32-bit) is C:\Windows\SysWOW64.


Cause 2:

Windows and Linux

If you have found that your error is not described in the first cause, your problem is a missing dependency. You can read more about the dependencies in this article.


Solution:

Windows

Please, check C:\Windows\System32 folder if it contains idkit.dll file. Also, check the header of this dynamic library and make sure it is the right library for your platform (64 or 32-bit). If you have not fount the file there and you have installed the SDK, please take a look into C:\Program Files\Innovatrics\IDKit SDK folder and you will find idkit.dll there. Then, you just copy the library into the System32 folder and it should work.


Linux

Since it is a bit dangerous to modify system folders on Linux, you can try to re-run an install script with sudo privileges (sudo install.sh). 

Another solution is to set the LD_LIBRARY_PATH environment variable. It can be set for the entire system or only for a current shell. We recommend you to set the variable only for a shell you are working in. Also, if you are using some IDE for development, it is possible to set the environment variables even for an IDE. The LD_LIBRARY_PATH should be set to a path to the dynamic library libidkit.so and assuming the library is still in the IDKit SDK package, specifically in lib/ folder, it is easy to set the variable.