Kiedy próbuję zbudować własną wersję Pythona przy użyciu:Jak ignorować lokalnego Pythona przy budowie pytona ze źródła
./configure --enable-shared --prefix=/app/vendor/python-dev && make && make install
widzę jakieś błędy podczas instalacji:
/usr/bin/ld: /usr/local/lib/libpython2.7.a(abstract.o): relokacja R_X86_64_32 względem `.rodata.str1.8 'nie może być używana podczas tworzenia obiektu wspólnego ; przekompilować z -fPIC /usr/local/lib/libpython2.7.a: nie mógł odczytać symbole: Bad wartość
Problem zaczyna się, gdy łącznik próbuje użyć /usr/local/lib/libpython2.7.a
a nie nowo skompilowane biblioteki.
Jak mogę zapobiec użyciu przez linker (configure/make) bibliotek Pythona zainstalowanych w systemie?
'./configure --enable-shared prefix =/app/vendor/python-dev && make && make install' działa dla mnie (z [Python-2.7.5 archiwum] (http://www.python.org/ftp/python/2.7.5/Python-2.7 .5.tar.bz2) na Ubuntu 13.04). Jeśli błąd wystąpi podczas części 'make', musisz dołączyć pełne wyjście z' make'. – Aya
To jest jedyny błąd. Po prostu powtarza się również dla innych modułów. Używam tarballa 2.7.4. Ale mam 2.7.4 na moim komputerze, skompilowany statycznie (chyba bez -fPIC). – Xyand
Oczywiście, ale przyczyna błędu wystąpiła dużo wcześniej w kompilacji, więc niemożliwe jest zdiagnozowanie bez dodatkowych informacji. Spójrz na [this] (http://mail.python.org/pipermail/python-list/2010-September/587427.html) i obserwacje. Nie jestem pewien, czy to ten sam problem, ale niewiele więcej mogę zrobić bez zobaczenia wyjścia z 'make'. – Aya