<p>Am 16.04.2015 14:44 schrieb "Paul Michell" <<a href="mailto:Paul@michellcomputing.co.uk">Paul@michellcomputing.co.uk</a>>:<br>
><br>
> On Thursday 16 Apr 2015 14:19:38 Sven Barth wrote:<br>
> > First of: I don't know whether non-Shortstrings are supported on embedded<br>
> > (I haven't played with that target yet). So my following tips are geared<br>
> > towards ShortString usage.<br>
> ><br>
> > Which compiler mode are you using? You should use either mode FPC or at<br>
> > most ObjFPC. Mode Delphi will switch on AnsiString. In any case you should<br>
> > ensure that you haven't enabled AnsiStrings using $H+ (simply disable the<br>
> > directive in that case).<br>
> > Additionally you could declare your String variables explicitly as<br>
> > ShortString instead of String.<br>
> ><br>
> > Regards,<br>
> > Sven<br>
><br>
> I've tried mode FPC and ObjFPC with both long and short strings. I have just<br>
> tried again with the ShortString type as well (I've included the whole main<br>
> unit code below for reference).</p>
<p>How about the unit UARTPutString is defined in? From the missing symbols you quoted earlier the compiler somewhere thinks that it needs to use an AnsiString and thus uses the corresponding functions which the linker the complains about.</p>
<p>> I suspect that I need to link additional object files that support the string<br>
> handling, but I don't know which ones, nor if this is possible with the<br>
> embedded compiler?</p>
<p>As I wrote earlier I don't know enough about the embedded target right now to tell you whether it supports AnsiStrings at all and if so what you need to do to enable them.</p>
<p>Regards,<br>
Sven</p>