[fpc-pascal] Cross Compile : treefilteredit.pas(60, 60) Error: Illegal expression
Jonas Maebe
jonas.maebe at elis.ugent.be
Mon May 19 13:43:18 CEST 2014
On 19 May 2014, at 12:33, Luca Olivetti wrote:
>> treefilteredit.pas(60,60) Error: Illegal expression
>> treefilteredit.pas(60,60) Error: Error in type definition
>> treefilteredit.pas(60,60) Fatal: Syntax error, ">" expected but ""
>> found
>
> I have the same error, but with fpc 2.6.4, Lazarus 1.2.2.
This happens if the RTL is built with a cross-compiler and a program
is then built with a native compiler, or if the RTL is built with a
native compiler and the program is built with a native compiler. This
bug is present in FPC 2.6.x, but not in 2.7.x. I don't know in which
revision it was fixed.
> I didn't see a solution in this (old) thread.
> I installed fpc from the rpm and buili the cross compiler x86_64->i386
> following the instructions here:
>
> http://wiki.lazarus.freepascal.org/Cross_compiling#From_Linux_x64_to_Linux_i386
The problem is that the "make install" does not force a cross
installation, and therefore it will install a native ppc386 compiler
as opposed to a ppcross386 cross-compiler (and it will overwrite all
FPC utilities in /usr/bin with i386 versions). You have to use "make
crossinstall" instead of "make install" to force a cross-installation.
This is generally not required when going from one architecture to
another, but with x86 machines capable of running both x86-64 and
i386, it is (and it's always a good idea to use it when performing a
cross-installation, as it makes your intention clear rather than
relying on auto-detection features of the makefile to determine what
you mean).
To solve your problem:
a) reinstall FPC 2.6.4 for x86-64 (to get the x86-64 versions of the
utilities in /usr/bin back)
b) delete /usr/lib/fpc/2.6.4/ppc386
c) rebuild the cross-compiler, but this time use "make crossinstall"
instead of "make install" at the end (I've updated the wiki article)
Jonas
More information about the fpc-pascal
mailing list