Why 1.0.1 and not 1.0.2?
No particular reason for that. I just didnt notice that 1.0.2 j is Long Term Support.
I built 1.0.2 and tried to link them, same result.
But did you actually add the files to your project? It is not enough to
just put them in the IDE's lib folder.
Yes, same result.
I even tried with $LINK directive, but it's actually windows platform specific, at least thats' what the compiler
warns about. However the outcome is the same.
http://docwiki.embarcadero.com/RADStudio/Berlin/en/OpenSSL shows that on iOS copying the .a libraries
would suffice and I thought it was the same on Android.
That has nothing to do with Indy, as it does not use the functions in question.
The errors are related to the lib files themselves. The linker is not able
to find various functions that libssl.a is statically linked to. Presumably
they reside in libcrypto.a, which is either being ignored by the linker,
or maybe it is the wrong version and does not contain the functions in question.
You're right, it's not related to Indy, I've just used the header files to import OpenSSL definitions into project.
Indeed those functions are in libcrypto.a and the lib actually contains them, I've checked against nm utility.
Perhaps linker must be fed with full path of the libraries when attempting static linking:
https://wiki.openssl.org/index.php/Android#Static_Library_Linking
In Delphi IDE I see the full command line for dccaarm.exe, where linker and libpath are provided:
..\dccaarm.exe <snip> --libpath:"<snip>." --linker:"<snip>windows\bin\arm-linux-androideabi-ld.exe"
Alas, could not find a way to provide linker with additional options, at least from Delphi IDE.
Invoking ld from command line would possibly allow that? I suspect it would need
a plenty of other options, not listed by dccaarm command line?
--
Angelo
Connect with Us