<div dir="ltr"><div><div><div><div><div><div>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.<br></div>However most reasons talk about that there would be problems if someone tried to use two fpc static libs together because of duplicated symbols.  <br>
<br>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.<br><br></div>
<div>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.<br><br></div>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.<br>
</div>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. <br><br></div>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:<br>
<br>procedure internal_initializeunits(); external name 'FPC_INITIALIZEUNITS';<br><br></div>This function from what I understood it calls all units initialization sections, right?<br>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.<br>
<br></div>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?<br></div>