Hallo,
ich bin Entwickler eines cross platform tools.
Die Mac Version entwickel ich auf nem 10.5.2er MacOS.
Nun bekam ich eine Mail von einem user mit MacOS 10.4.11 mit folgendem crash-report:
Link (dyld) error:
Symbol not found: _pthread_rwlock_init$UNIX2003
Referenced from: /Applications/butt.app/Contents/MacOS/butt
Expected in: /usr/lib/libSystem.B.dylib
Nach ein wenig Suchen im internet, habe ich erfahren,
dass es die Funktionen mit $UNIX2003 Anhang auch noch ohne gibt.
Bei jemand anderem mit MacOS 10.4.11 läufts aber ohne Probleme.
Es sieht also so aus, als würde beim 1. Fall das System die Funktionen
mit dem $UNIX2003 Anhang nicht kennen.
Da wären nun zwei Möglichkeiten.
Man müsste entweder dem System wo das Problem auftritt beibringen,
wo es die $UNIX2003 Funktionen findet, oder ich ich muss dafür sorgen,
dass mein Programm die "normalen" Funktionen verwendet.
Nun soll man angeblich mit #define _NONSTD_SOURCE 1 bewirken können,
dass er nicht die $UNIX2003 Funktionen sondern die normalen nimmt.
Ich habe es mit dem #define versucht und ebenfalls dem gcc
über die Befehlszeile -D_NOSTD_SOURCE mit übergeben.
Jedoch kann ich mit "nm ./butt |grep pthread_rwlock_init" immernoch
die $UNIX2003er version sehen
Hat von euch vielleicht jemand eine Idee wie man das lösen könnte?
Danke und Grüße,
bip
ich bin Entwickler eines cross platform tools.
Die Mac Version entwickel ich auf nem 10.5.2er MacOS.
Nun bekam ich eine Mail von einem user mit MacOS 10.4.11 mit folgendem crash-report:
Link (dyld) error:
Symbol not found: _pthread_rwlock_init$UNIX2003
Referenced from: /Applications/butt.app/Contents/MacOS/butt
Expected in: /usr/lib/libSystem.B.dylib
Nach ein wenig Suchen im internet, habe ich erfahren,
dass es die Funktionen mit $UNIX2003 Anhang auch noch ohne gibt.
Bei jemand anderem mit MacOS 10.4.11 läufts aber ohne Probleme.
Es sieht also so aus, als würde beim 1. Fall das System die Funktionen
mit dem $UNIX2003 Anhang nicht kennen.
Da wären nun zwei Möglichkeiten.
Man müsste entweder dem System wo das Problem auftritt beibringen,
wo es die $UNIX2003 Funktionen findet, oder ich ich muss dafür sorgen,
dass mein Programm die "normalen" Funktionen verwendet.
Nun soll man angeblich mit #define _NONSTD_SOURCE 1 bewirken können,
dass er nicht die $UNIX2003 Funktionen sondern die normalen nimmt.
Ich habe es mit dem #define versucht und ebenfalls dem gcc
über die Befehlszeile -D_NOSTD_SOURCE mit übergeben.
Jedoch kann ich mit "nm ./butt |grep pthread_rwlock_init" immernoch
die $UNIX2003er version sehen
Hat von euch vielleicht jemand eine Idee wie man das lösen könnte?
Danke und Grüße,
bip