7

Я недавно обновил свой Mac Book Pro до Lion и столкнулся с проблемами с приложением MacPorts, которое у меня было. Я скачал и установил XCode 4.2 из магазина приложений (очень не для магазина приложений, как, например, установка - вы нажимаете кнопку «Установить» в магазине приложений, но приложение только загружается). Вы должны отдельно установить его), прежде чем я сделал самообновление, но это, похоже, не имеет значения. Сбой приложения со следующими ошибками (соответствующие разделы ниже) -

/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)

Насколько я говорю, у меня не должно быть проблем, но, похоже, у меня нет другого выбора, кроме как переустановить MacPorts и все приложения под ним.

1 ответ1

6

Я нашел ответ, когда искал в Google, используя сообщения об ошибках в качестве поисковых запросов.

По сути, проблема в том, что я также установил инфраструктуру Mono, и по какой-то странной причине MacPorts использовал версию SQL Lite, входящую в состав Mono Framework, на этапах сборки и установки. Эта версия SQL Lite не совместима с приложением MacPorts, и в результате установка не удалась.

Обходной путь - временно переместить /Library/Frameworks/Mono.framework/ куда-нибудь еще, а затем запустить команду selfupdate. Как только самообновление будет сделано, переместите папку обратно в /Library/Frameworks/Mono.framework/.

Я получил решение от Марка, который любезно написал об этом здесь - http://itandbiscuits.blogspot.com/2011/09/macports-mono.html

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .