私はpytho2.5.6のソースコードを読んで学ぼうとしており、コードを変更するたびにコードを再コンパイルしようとしています。
しかし、次のコマンドを使用してソース コードをコンパイルすると、機能しないようです。
./configure --prefix=/path/to/somewhere/that/don't/messup/myenv/
make
の後make
、コンソールには次のようなエラーが表示されます。
cc1: error: unrecognized command line option "-Wno-long-double"
Google を検索しましたが、使用している gcc(4.2.1) は python2.5.6 と互換性がないようです。
私のsysのいくつかの情報:
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
Xcode 4.6.2(installed via the xcode command cline tool )
python2.5.6 source code(download from python.org)
私は次のようないくつかの解決策を試しました:
1. 2.5.4 などの diff python コード バージョンをダウンロードし、手順をもう一度実行します。
2.その後configure
、Makefileを変更し、削除します--Wno-long-double
が、新しいエラーは次のように表示されました:
➜ Python-2.5.6 make
gcc -c -fno-strict-aliasing -no-cpp-precomp -mno-fused-madd -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -DPy_BUILD_CORE -o Python/mactoolboxglue.o Python/mactoolboxglue.c
In file included from Include/Python.h:57,
from Python/mactoolboxglue.c:26:
Include/pyport.h:547: warning: ‘struct winsize’ declared inside parameter list
Include/pyport.h:547: warning: its scope is only this definition or declaration, which is probably not what you want
Include/pyport.h:548: warning: ‘struct winsize’ declared inside parameter list
In file included from /System/Library/Frameworks/CoreFoundation.framework/Headers/CFBase.h:67,
from /System/Library/Frameworks/CoreFoundation.framework/Headers/CoreFoundation.h:38,
from /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:18,
from /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20,
from /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:18,
from /System/Library/Frameworks/Carbon.framework/Headers/Carbon.h:20,
from Include/pymactoolbox.h:10,
from Python/mactoolboxglue.c:27:
/usr/include/AvailabilityMacros.h:109:14: warning: #warning Building for Intel with Mac OS X Deployment Target < 10.4 is invalid.
In file included from Python/mactoolboxglue.c:27:
.......
Python/mactoolboxglue.c: In function ‘MediaObj_Convert’:
Python/mactoolboxglue.c:431: error: ‘cobj’ undeclared (first use in this function)
Python/mactoolboxglue.c:431: error: too many arguments to function ‘PyMacGluePtr_MediaObj_Convert’
make: *** [Python/mactoolboxglue.o] Error 1
では、gcc4.0 を手動でインストールする方法はあるのでしょうか?
PS: 私が python2.5.6 を使用する理由は、中国語で書かれた本を読んだからです。または、2.7 のソース コードを読むのが最善の解決策かもしれません =.=....うーん.....