Let's start this email by saying that I know perfectly that FPC does not support static libraries, I read all I could find about it. However most reasons talk about that there would be problems if someone tried to use two fpc static libs together because of duplicated symbols.
In my case I want to create a iPhone static lib to be used by objective-c and C++ users. Since in this special case there will be one and only one lib written in pascal, I though this would make it possible. I saw that my own iOS projects that were based on templates worked by compiling a static libFPC.a that would be then called by Objective-C. So I did create my own static library by gathering all .o files from FPC into a .a file. I wrote a .h header and added the static lib into a Xcode Objective-C project. Ok, it compiles and links correctly. It calls some of the pascal functions correctly. But.. then it later crashes in one of the pascal functions. Note that I have a lib_init() function called from C that is used to initialize the pascal library, and it calls this undocumented fpc function: procedure internal_initializeunits(); external name 'FPC_INITIALIZEUNITS'; This function from what I understood it calls all units initialization sections, right? Still, I'm missing something... the libFPC.a compiled in xcode templates works fine with Objective-C, but also it does not share any memory back or forward. This seems to be some problem with memory allocation, since only calling any function that creates pascal strings or classes seem to crash the app. Any clue?
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel