Cross-compiling from win32 to Linux is reasonably hard because you need the shared libraries you link to on your Windows system. Lazarus is not shipped with a Linux rtl, you must compile it yourself.

{$APPTYPE GUI} is not necessary under Linux. You will get a warning if you try it, you either ignore the warning or {$fdef win32} it.