Ich habe kürzlich mein Mac Book Pro auf Lion aktualisiert und war mit der MacPorts-Anwendung konfrontiert, die ich bei mir hatte. Ich hatte XCode 4.2 aus dem App Store heruntergeladen und installiert (sehr un - Appstore wie Installation BTW - Sie klicken auf Install im App Store, aber es hat nur die App heruntergeladen. Sie müssen sie separat installieren), bevor ich das Selfupdate durchgeführt habe, aber nicht scheinen wichtig zu sein. Die Anwendung schlägt mit den folgenden Fehlern fehl (relevante Abschnitte unten) -
/Library/Frameworks/Mono.framework/Versions/2.10.6/include/sqlite3.h:252: warning: ISO C90 does not support ‘long long’
/Library/Frameworks/Mono.framework/Versions/2.10.6/include/sqlite3.h:253: warning: ISO C90 does not support ‘long long’
/usr/bin/cc -c -DUSE_TCL_STUBS -DTCL_NO_DEPRECATED -g -O2 -W -Wall -pedantic -I/Library/Frameworks/Mono.framework/Versions/2.10.6/include -DHAVE_CONFIG_H -I.. -I. -I"/usr/include" -fno-common util.c -o util.o
In file included from util.h:36,
from util.c:37:
/Library/Frameworks/Mono.framework/Versions/2.10.6/include/sqlite3.h:252: warning: ISO C90 does not support ‘long long’
/Library/Frameworks/Mono.framework/Versions/2.10.6/include/sqlite3.h:253: warning: ISO C90 does not support ‘long long’
.
.
.
/usr/bin/cc -dynamiclib -g -O2 -W -Wall -pedantic -I/Library/Frameworks/Mono.framework/Versions/2.10.6/include -Wl,-single_module registry.o util.o entry.o entryobj.o ../cregistry/cregistry.a -o registry.dylib -L/System/Library/Frameworks/Tcl.framework/Versions/8.5 -ltclstub8.5 -L/Library/Frameworks/Mono.framework/Versions/2.10.6/lib -lsqlite3
ld: warning: ignoring file
/Library/Frameworks/Mono.framework/Versions/2.10.6/lib/libsqlite3.dylib, file was built for unsupported file format which is not the architecture being linked (x86_64)
Undefined symbols for architecture x86_64:
"_sqlite3_errmsg", referenced from:
_set_sqlite_result in util.o
_reg_sqlite_error in cregistry.a(registry.o)
_reg_detach in cregistry.a(registry.o)
_reg_close in cregistry.a(registry.o)
_reg_attach in cregistry.a(registry.o)
_reg_open in cregistry.a(registry.o)
.
.
.
.
"_sqlite3_create_collation", referenced from:
_init_db in cregistry.a(sql.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [registry.dylib] Error 1
make[1]: *** [all] Error 1
make: *** [all] Error 1
shell command "cd /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/base && CC=/usr/bin/cc ./configure --prefix=/opt/local --with-tclpackage=/Library/Tcl --with-install-user=root --with-install-group=admin --with-directory-mode=0755 --enable-readline && make &&
make install" returned error 2
Error: /opt/local/bin/port: port selfupdate failed: Error installing new MacPorts base: shell command failed (see log for details)
Soweit ich weiß, sollte ich keine Probleme haben, aber es sieht so aus, als hätte ich keine andere Wahl, als MacPorts und alle Anwendungen darunter neu zu installieren.
Antworten:
Ich habe die Antwort gefunden, als ich bei Google nach den Fehlermeldungen als Suchanfragen gesucht habe.
Grundsätzlich liegt das Problem darin, dass ich auch das Mono-Framework installiert hatte und MacPorts aus irgendeinem seltsamen Grund die im Mono Framework enthaltene Version von SQL Lite während der Erstellungs- und Installationsschritte verwendete. Diese Version von SQL Lite ist nicht mit der MacPorts-Anwendung kompatibel. Infolgedessen ist die Installation fehlgeschlagen.
Die Problemumgehung besteht darin, die Datei /Library/Frameworks/Mono.framework/ vorübergehend an einen anderen Ort zu verschieben und dann den Befehl selfupdate auszuführen. Sobald das Selbstupdate abgeschlossen ist, verschieben Sie den Ordner zurück zu /Library/Frameworks/Mono.framework/.
Ich habe die Lösung von Mark bekommen, der hier freundlicherweise darüber gebloggt hat - http://itandbiscuits.blogspot.com/2011/09/macports-mono.html
quelle