2012-04-08 41 views
7

Tôi đang cố gắng biên dịch vim từ nguồn với trình thông dịch python trên Ubuntu. Tôi đã cài đặt phụ thuộc cho vim, cài đặt python2.7-devel và các gói python2.7-dbg trên Ubuntu và làm các bước cấu hình nhưbiên dịch vim với hỗ trợ python trên Ubuntu

./configure --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config 

thư mục config này có chứa các tập tin config.c. Bước thực hiện không thành công với lỗi sau.

... 

objects/py_config.o:(.data+0xcc): undefined reference to `initcStringIO' 
objects/py_config.o:(.data+0xd4): undefined reference to `initcPickle' 
objects/py_config.o:(.data+0xdc): undefined reference to `initzlib' 
collect2: ld returned 1 exit status 
make: *** [vim] Error 1 

Tôi đã thử xây dựng ổn định, chỉnh sửa xung quanh cấu hình, v.v. Nhưng không tìm thấy câu trả lời dứt khoát. Cũng vim xây dựng mà không có thông dịch viên python.

Ở đây hoàn toàn

đầu ra - http://paste.pocoo.org/show/577749/

lỗi - http://paste.pocoo.org/show/577752/

Makefile - http://paste.pocoo.org/show/577751/

+0

Ông có thể bao gồm nhiều dòng thông báo lỗi? BTW, đây là lỗi liên kết, thường xảy ra do đường dẫn không chính xác đến thư viện. Bạn đã kiểm tra đường dẫn đến thư viện chưa? –

+2

Tại sao bạn không thử 'vim-nox'? – neoascetic

+0

@eleweek - Bao gồm các liên kết đến đầu ra và lỗi. –

Trả lời

3

Trả lời câu hỏi của riêng tôi sau khi làm nghiên cứu đáng kể. Tìm trong một số cài đặt Ubuntu nhất định, các tệp mà vim đang tìm kiếm compilation may be missing.

Sau khi nhận ra rằng tôi đã tiếp tục với cài đặt tùy chỉnh nguồn Python (./configure --prefix=/home/senthil/localpython; make; make install) và sau đó tiến hành biên dịch vim aginst cái này.

  1. Đặt đường dẫn sao cho python trỏ đến cài đặt cục bộ mới.

    PATH =/home/Senthil/localpython/bin: $ PATH

  2. Sau đó bắt đầu biên soạn với những lá cờ sau.

    ./configure enable-pythoninterp --with-tính năng = khổng lồ --with-python-config-dir =/home/Senthil/localpython/lib/python2.7/config

Bạn sẽ thấy rằng vim biên dịch tốt bằng cách sử dụng trình thông dịch python cục bộ. Như đã được thông báo bởi các nguồn khác nhau, điều này làm tăng kích thước của vim và tôi cũng cảm thấy rằng tốc độ có ý nghĩa trở nên chậm hơn. Chỉ sau khi hoàn thành bài tập này (một cách thực sự với sự kiên nhẫn), tôi nghĩ rằng, tôi muốn sử dụng hệ thống vim chính nó.

2

Trước khi biên dịch Vim, hãy cài đặt python-devpython2.7-dev (hoặc bất kỳ nhà phát triển nào khớp với phiên bản python của bạn). Hai gói đó có thể trỏ đến cùng một tệp, nhưng nó làm việc cho tôi.

+1

Tôi nghĩ câu trả lời của OP là đủ. –

+0

Câu trả lời của OP chắc chắn lâu hơn, nhưng nó không hiệu quả với tôi. Ngoài ra, tôi sẽ ngạc nhiên nếu nó đã làm việc. Tại sao nó có ý nghĩa để cung cấp cho Vim một tập tin cấu hình cho một interp Python đó không phải là hệ thống Python interp? –

+0

@AlexBeal làm cách nào để cài đặt python-dev? Tôi đang cố gắng cài đặt nó trên debian (và tôi không có đặc quyền root) –

3

được configdir với /usr/bin/python2.7-config --configdir

ví dụ:

sudo apt-get build-dep vim 
hg clone https://vim.googlecode.com/hg/ vim 
./configure --enable-pythoninterp --with-features=huge --prefix=$HOME/opt/vim --with-python-config-dir=$(/usr/bin/python2.7-config --configdir) 
make && make install 
Các vấn đề liên quan