Je nach Platform braucht man eine andere "LIB",
da Diese ja vorkompiliert sind und demnach nur für je eine Platform möglich sind.
Also ob man das statisch oder dynamisch linkt (gegen eine
DLL/Library-Datei)
oder ob man das in die Anwendung einkompilier/linkt (den Code importiert).
Teilweise gibt es in einigen
OS bereits etwas, was man direkt verwenden kann.
z.B. denke ich mal, dass webp im Android enthalten sein wird und man da Funktionen via Java aufrufen könnte.
bekanntes Beispiel: im Windows greift man direkt auf die Webcam zu und nutzt irgendeine Barcode-Lib,
aber im Android/iOS könnte man auch eine Action der Camera-App ansprechen und sich von ihr den Barcode geben lassen.
z.B.
hier wird nur für
Win32 oder Win64 etwas "
in die EXE gelinkt", während bei den anderen Compilern nur gegen eine entsprechende LIB ge-/
verlinkt wird (welche vermutlich von Delphi mitgegeben wird).
Zitat:
Delphi-Quellcode:
{$IFDEF MACOS}
{$IF defined(CPUARM)}
{$IFDEF IOS} //IOS devices
PU = '
';
LIBPCRE = '
libpcre.a';
{$DEFINE STATIC_LIB}
{$ELSE} //OSX
PCRELib = '
/usr/lib/libpcre.dylib';
{$DEFINE DYNAMIC_LIB}
{$ENDIF}
{$ELSE}
{$IFDEF IOS} //IOS Simulator
PCRELib = '
libpcre.dylib';
{$ELSE} //OSX
PCRELib = '
/usr/lib/libpcre.dylib';
{$ENDIF}
{$DEFINE DYNAMIC_LIB}
{$ENDIF}
{$ENDIF MACOS}
{$IFDEF LINUX}
PU = '
';
{$IFDEF PIC}
LIBPCRE = '
libpcre_PIC.a';
{$ELSE PIC}
LIBPCRE = '
libpcre.a';
{$ENDIF PIC}
{$DEFINE STATIC_LIB}
{$ENDIF LINUX}
{$IFDEF MSWINDOWS}
{$IFDEF CPUX86}
PU = '
_';
{$ELSE}
PU = '
';
{$ENDIF}
{$ENDIF}
{$IFDEF ANDROID}
PU = '
';
LIBPCRE = '
libpcre.a';
{$DEFINE STATIC_LIB}
{$ENDIF ANDROID}
{$IFDEF PCRE16}
PCREname = '
pcre16_';
{$ELSE}
PCREname = '
pcre_';
{$ENDIF}
{$EXTERNALSYM PCREname}
{$IFDEF NEXTGEN}
{$NODEFINE pcre_study}
{$NODEFINE pcre_compile}
{$NODEFINE pcre_compile2}
{$ENDIF}
...
{$IF Declared(PCRELib)}
var
_PCRELib: THandle;
{$ENDIF}
{$IFDEF MSWINDOWS}
{$IFDEF PCRE16}
{$IF Defined(Win32)}
{$L pcre16_study.obj}
{$L pcre16_compile.obj}
{$L pcre16_config.obj}
{$L pcre16_dfa_exec.obj}
{$L pcre16_exec.obj}
{$L pcre16_fullinfo.obj}
{$L pcre16_get.obj}
{$L pcre16_maketables.obj}
{$L pcre16_newline.obj}
{$L pcre16_ord2utf16.obj}
{$L pcre16_refcount.obj}
{$L pcre16_tables.obj}
{$L pcre16_string_utils.obj}
{$L pcre16_ucd.obj}
{$L pcre16_valid_utf16.obj}
{$L pcre16_version.obj}
{$L pcre16_xclass.obj}
{$L pcre16_default_tables.obj}
{$ELSEIF Defined(Win64)}
{$L pcre16_study.o}
{$L pcre16_compile.o}
{$L pcre16_config.o}
{$L pcre16_dfa_exec.o}
{$L pcre16_exec.o}
{$L pcre16_fullinfo.o}
{$L pcre16_get.o}
{$L pcre16_maketables.o}
{$L pcre16_newline.o}
{$L pcre16_ord2utf16.o}
{$L pcre16_refcount.o}
{$L pcre16_string_utils.o}
{$L pcre16_tables.o}
{$L pcre16_ucd.o}
{$L pcre16_valid_utf16.o}
{$L pcre16_version.o}
{$L pcre16_xclass.o}
{$L pcre16_default_tables.o}
{$ENDIF}
{$ELSE}
{$IF Defined(Win32)}
{$L pcre_study.obj}
{$L pcre_compile.obj}
{$L pcre_config.obj}
{$L pcre_dfa_exec.obj}
{$L pcre_exec.obj}
{$L pcre_fullinfo.obj}
{$L pcre_get.obj}
{$L pcre_maketables.obj}
{$L pcre_newline.obj}
{$L pcre_ord2utf8.obj}
{$L pcre_refcount.obj}
{$L pcre_tables.obj}
{$L pcre_ucd.obj}
{$L pcre_valid_utf8.obj}
{$L pcre_version.obj}
{$L pcre_xclass.obj}
{$L pcre_default_tables.obj}
{$ELSEIF Defined(Win64)}
{$L pcre_study.o}
{$L pcre_compile.o}
{$L pcre_config.o}
{$L pcre_dfa_exec.o}
{$L pcre_exec.o}
{$L pcre_fullinfo.o}
{$L pcre_get.o}
{$L pcre_maketables.o}
{$L pcre_newline.o}
{$L pcre_ord2utf8.o}
{$L pcre_refcount.o}
{$L pcre_tables.o}
{$L pcre_ucd.o}
{$L pcre_valid_utf8.o}
{$L pcre_version.o}
{$L pcre_xclass.o}
{$L pcre_default_tables.o}
{$ENDIF}
{$ENDIF}
{$ENDIF MSWINDOWS}