Hello,
This is on Windows 10, Armed Bear Common Lisp 1.4.0, Java 1.7.0_51 Oracle Corporation
I am trying to link to sqlite3.dll with CFFI (as required by the cl-dbi package)
I have jna installed in my home directory under ~/.m2/... and cffi loads cleanly as does cl-dbi.
Note that the ~/.m2/.../jna-4.2.2.jar is not in my classpath. Instead I added it via (java:add-to-classpath ...)
(cffi:load-foreign-library "c:/Program Files/sqlite/sqlite3.dll") gives an error (shown below).
I also tried by adding the directory to cffi:*foreign-library-directoris*, and then calling
(cffi:load-foreign-library "sqlite3.dll").
The error message is:
Unable to load foreign library (SQLITE3.DLL-30929).
Unable to load library 'C:/Program Files/sqlite/sqlite3.dll': Native library (win32-x86/C:/Program Files/sqlite/sqlite3.dll) not found in resource path ([file:/C:/mv-program-files/abcl-bin-1.4.0/, file:/C:/mv-program-files/abcl-bin-1.4.0/abcl.jar])
Questions:
- What is the implication of the win32-x86 prefix to the path in the error message? Is that a 32/64 bit incompatibility?
- I don't understand the part of the error message referring to the resource path
- while CFFI does compile, do I have somehow to load JNA explicitly. In other words, is (ql:qload ...) enough, or do I need to do something else to activate JNA?
- Does CFFI work on Windows (since Java is cross-platform, I would expect it to)?
(My Java knowledge is epsilon where epsilon appraches 0, although I plan to work on this if I continue using ABCL to interface to Java libraries)
Thank you,
Mirko