|Rene|
09.09.05, 09:55
Hallo,
ich stehe von einem vielleicht einfachem Problem.
Wir haben eine Schnittstelle entwickelt um SAP über einen Scheduler anzusprechen.
Um nicht immer aktuelle Bibliotheken mitgeben zu müssen soll das ganze über archived Libary gemacht werden.
Unter AIX lies sich das ganze ohne Probleme compilieren, unter Linux mit GCC bekomme ich allerdings einige Fehler die ich nicht zuordnen kann. Vielleicht ist nur eine Compileroption falsch.
Rufe den gcc mit folgenden Optionen auf über ein Shell-Script auf:
gcc -funsigned-char -Wcast-align -pthread -fPIC -DSAPwithTHREADS -DSAPonLIN -c "$PROG".c blowfish.c
Nach Compilieren und vor Linken
gcc -funsigned-char -pthread -fPIC -L/usr/lib -L/usr/sap/bin -L. -o "$PROG" "$PROG".o blowfish.o -lrfc
Nun bekomm ich diese Fehlerliste ausgegeben:
./librfc.a(rfcilib.o)(.text+0x2d760): In function `zdate_abs':
: undefined reference to `floor'
./librfc.a(rfcilib.o)(.text+0x2d77d): In function `zdate_abs':
: undefined reference to `floor'
./librfc.a(cpictlib.o)(.text+0x39b64): In function `LinStack':
: undefined reference to `dladdr'
./librfc.a(cpictlib.o)(.text+0x3a2e2): In function `DlLoadLib':
: undefined reference to `dlopen'
./librfc.a(cpictlib.o)(.text+0x3a356): In function `DlLoadLib':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x3a48e): In function `DlUnloadLib':
: undefined reference to `dlclose'
./librfc.a(cpictlib.o)(.text+0x3a4f0): In function `DlUnloadLib':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x3a65c): In function `DlLoadFunc':
: undefined reference to `dlsym'
./librfc.a(cpictlib.o)(.text+0x3a685): In function `DlLoadFunc':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x664b3): In function `nlsui_dlopen':
: undefined reference to `dlopen'
./librfc.a(cpictlib.o)(.text+0x664c5): In function `nlsui_dlopen':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x66651): In function `nlsui_dlclose':
: undefined reference to `dlclose'
./librfc.a(cpictlib.o)(.text+0x66663): In function `nlsui_dlclose':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x66784): In function `nlsui_dlsym':
: undefined reference to `dlsym'
./librfc.a(cpictlib.o)(.text+0x6679b): In function `nlsui_dlsym':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x6703c): In function `mapIcuUtilFunctions':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x671a6): In function `mapIcuUtilFunctions':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x6730a): In function `mapIcuUtilFunctions':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x67476): In function `mapIcuUtilFunctions':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x675da): more undefined references to `dlerror' follow
Die Libary die eingebunden werden soll ist die librfc.a von SAP
ich stehe von einem vielleicht einfachem Problem.
Wir haben eine Schnittstelle entwickelt um SAP über einen Scheduler anzusprechen.
Um nicht immer aktuelle Bibliotheken mitgeben zu müssen soll das ganze über archived Libary gemacht werden.
Unter AIX lies sich das ganze ohne Probleme compilieren, unter Linux mit GCC bekomme ich allerdings einige Fehler die ich nicht zuordnen kann. Vielleicht ist nur eine Compileroption falsch.
Rufe den gcc mit folgenden Optionen auf über ein Shell-Script auf:
gcc -funsigned-char -Wcast-align -pthread -fPIC -DSAPwithTHREADS -DSAPonLIN -c "$PROG".c blowfish.c
Nach Compilieren und vor Linken
gcc -funsigned-char -pthread -fPIC -L/usr/lib -L/usr/sap/bin -L. -o "$PROG" "$PROG".o blowfish.o -lrfc
Nun bekomm ich diese Fehlerliste ausgegeben:
./librfc.a(rfcilib.o)(.text+0x2d760): In function `zdate_abs':
: undefined reference to `floor'
./librfc.a(rfcilib.o)(.text+0x2d77d): In function `zdate_abs':
: undefined reference to `floor'
./librfc.a(cpictlib.o)(.text+0x39b64): In function `LinStack':
: undefined reference to `dladdr'
./librfc.a(cpictlib.o)(.text+0x3a2e2): In function `DlLoadLib':
: undefined reference to `dlopen'
./librfc.a(cpictlib.o)(.text+0x3a356): In function `DlLoadLib':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x3a48e): In function `DlUnloadLib':
: undefined reference to `dlclose'
./librfc.a(cpictlib.o)(.text+0x3a4f0): In function `DlUnloadLib':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x3a65c): In function `DlLoadFunc':
: undefined reference to `dlsym'
./librfc.a(cpictlib.o)(.text+0x3a685): In function `DlLoadFunc':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x664b3): In function `nlsui_dlopen':
: undefined reference to `dlopen'
./librfc.a(cpictlib.o)(.text+0x664c5): In function `nlsui_dlopen':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x66651): In function `nlsui_dlclose':
: undefined reference to `dlclose'
./librfc.a(cpictlib.o)(.text+0x66663): In function `nlsui_dlclose':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x66784): In function `nlsui_dlsym':
: undefined reference to `dlsym'
./librfc.a(cpictlib.o)(.text+0x6679b): In function `nlsui_dlsym':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x6703c): In function `mapIcuUtilFunctions':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x671a6): In function `mapIcuUtilFunctions':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x6730a): In function `mapIcuUtilFunctions':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x67476): In function `mapIcuUtilFunctions':
: undefined reference to `dlerror'
./librfc.a(cpictlib.o)(.text+0x675da): more undefined references to `dlerror' follow
Die Libary die eingebunden werden soll ist die librfc.a von SAP