В macOS 10.12 я получаю следующую ошибку при попытке построить MathSage (make && make clean
):
Successfully installed python2-2.7.10.p1
Deleting temporary build directory
/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p1
Finished installing python2-2.7.10.p1.spkg
sage-logger 'sage-spkg atlas-3.10.2.p2' '/Applications/SageMath/logs/pkgs/atlas-3.10.2.p2.log'
Found local metadata for atlas-3.10.2.p2
Traceback (most recent call last):
File "/Applications/SageMath/build/bin/sage-download-file", line 27, in <module>
from sage_bootstrap.cmdline import SageDownloadFileApplication
File "/Applications/SageMath/build/bin/../sage_bootstrap/cmdline.py", line 28, in <module>
from sage_bootstrap.download import Download
File "/Applications/SageMath/build/bin/../sage_bootstrap/download.py", line 23, in <module>
from sage_bootstrap.compat import urllib
File "/Applications/SageMath/build/bin/../sage_bootstrap/compat.py", line 23, in <module>
import urllib
File "/Applications/SageMath/local/lib/python/urllib.py", line 1414, in <module>
from _scproxy import _get_proxy_settings, _get_proxies
ImportError: No module named _scproxy
make[2]: *** [/Applications/SageMath/local/var/lib/sage/installed/atlas-3.10.2.p2] Error 1
make[1]: *** [all] Error 2
real 154m30.485s
user 93m39.621s
sys 12m38.882s
***************************************************************
Error building Sage.
Как видно, он жалуется, что "scproxy" не найден.
Действительно, оглядываясь назад в журнале, я обнаружил эту ошибку, когда MathSage (очевидно?) Пытается скомпилировать _scproxy.c:
building '_scproxy' extension
creating build/temp.macosx-10.9-x86_64-2.7/Mac
creating build/temp.macosx-10.9-x86_64-2.7/Mac/Modules
gcc -fno-strict-aliasing -I/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p1/include -DNDEBUG -g -fwrapv -O3 -Wall -Wno-unused -I/Applications/SageMath/local/include -I. -IInclude -I./Include -I/usr/local/include -I/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p1/src/Include -I/Applications/SageMath/local/var/tmp/sage/build/python2-2.7.10.p1/src -c ./Mac/Modules/_scproxy.c -o build/temp.macosx-10.9-x86_64-2.7/./Mac/Modules/_scproxy.o
In file included from /usr/include/Availability.h:190:0,
from /usr/include/stdio.h:65,
from Include/Python.h:33,
from ./Mac/Modules/_scproxy.c:5:
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h:53:34: error: expected ',' or '}' before '__attribute__'
kCFISO8601DateFormatWithYear API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0)) = (1UL << 0),
^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h:80:126: error: 'introduced' undeclared here (not in a function)
CFDateFormatterRef CFDateFormatterCreateISO8601Formatter(CFAllocatorRef allocator, CFISO8601DateFormatOptions formatOptions) API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));
^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:777:39: error: 'deprecated' undeclared here (not in a function)
const CFStringRef kCFURLLabelColorKey API_DEPRECATED("Use NSURLLabelColorKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0));
^
/System/Library/Frameworks/CoreFoundation.framework/Headers/CFURL.h:777:39: error: 'message' undeclared here (not in a function)
const CFStringRef kCFURLLabelColorKey API_DEPRECATED("Use NSURLLabelColorKey", macosx(10.6, 10.12), ios(4.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0));
^
In file included from /System/Library/Frameworks/Security.framework/Headers/AuthSession.h:32:0,
from /System/Library/Frameworks/Security.framework/Headers/Security.h:43,
from /System/Library/Frameworks/SystemConfiguration.framework/Headers/SCPreferences.h:35,
from /System/Library/Frameworks/SystemConfiguration.framework/Headers/SystemConfiguration.h:124,
from ./Mac/Modules/_scproxy.c:6:
/System/Library/Frameworks/Security.framework/Headers/Authorization.h:192:7: error: variably modified 'bytes' at file scope
char bytes[kAuthorizationExternalFormLength];
^
./Mac/Modules/_scproxy.c: In function 'get_proxy_settings':
./Mac/Modules/_scproxy.c:67:50: warning: the comparison will always evaluate as 'true' for the address of 'kSCPropNetProxiesExcludeSimpleHostnames' will never be NULL [-Waddress]
if (&kSCPropNetProxiesExcludeSimpleHostnames != NULL) {
^
Это не похоже на обсуждаемую проблему здесь , потому что это связано с отсутствующей Системной копией _scproxy. (Я вижу
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/_scproxy.so
в моей системе.) И для меня это тоже не похоже на проблему, обсуждаемую здесь , потому что для этого нужен файл с именем /usr/include/dispatch/object.h
, являющийся Objective-C, тогда как ошибка выше жалуется о том, что что-то идет не так в /System/Library/Frameworks/CoreFoundation.framework/Headers/CFDateFormatter.h
.
Однако, возможно, это все же связано с моей версией gcc. Вот что я получаю, когда запускаю gcc -v
:
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 8.1.0 (clang-802.0.42)
Target: x86_64-apple-darwin16.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Кроме того, во втором посте, который я цитировал, рекомендуется использовать компилятор Sage gcc, что достигается путем «включения» опции SAGE_INSTALL_GCC=yes
. Я действительно не знаю, что я делаю здесь, я пытался запустить
make clean && make SAGE_INSTALL_GCC=yes
вместо обычного make clean && make
, и он столкнулся с той же ошибкой.
Любой совет?