Biên dịch gvim từ các nguồn?


12

Gần đây, tôi đã cài đặt vimnhư vậy:

hg clone https://vim.googlecode.com/hg/ vim
cd vim
sudo ./configure --enable-rubyinterp=yes --enable-pythoninterp=yes --enable-gui=gtk2 --prefix=/opt/vim
make 
make install
make install clean

Vì vậy, nhị phân VIM của tôi hiện đang sống /opt/vim/bin. Đây là ls -lathư mục này:

$ ls -la /opt/vim/bin
total 1500
drwxr-xr-x 2 root root    4096 2011-05-25 12:46 .
drwxr-xr-x 4 root root    4096 2011-05-25 12:46 ..
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 ex -> vim
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 rview -> vim
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 rvim -> vim
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 view -> vim
-rwxr-xr-x 1 root root 1504188 2011-05-25 12:46 vim
lrwxrwxrwx 1 root root       3 2011-05-25 12:46 vimdiff -> vim
-rwxr-xr-x 1 root root    2084 2011-05-25 12:46 vimtutor
-rwxr-xr-x 1 root root   13900 2011-05-25 12:46 xxd

Của tôi vim.gtkđâu Tôi đã chỉ định --enable-gui=gtk2trong cấu hình. Không phải nó nên nói trình cài đặt tôi muốn có phiên bản GUI cũng như ứng dụng console?

Tôi đã chỉ định gtkphiên bản chính xác:

$ dpkg -l libgtk[0-9]* | grep ^i
ii  libgtk2-perl                          1:1.221-4                                  Perl interface to the 2.x series of the Gimp Toolkit library
ii  libgtk2.0-0                           2.18.3-1ubuntu2.2                          The GTK+ graphical user interface library
ii  libgtk2.0-bin                         2.18.3-1ubuntu2.2                          The programs for the GTK+ graphical user interface library
ii  libgtk2.0-common                      2.18.3-1ubuntu2.2                          Common files for the GTK+ graphical user interface library

CẬP NHẬT : Nó được viết trên src / INSTALL

 88 Unix: COMPILING WITH/WITHOUT GUI
 89
 90 NOTE: This is incomplete, look in Makefile for more info.
 91
 92 These configure arguments can be used to select which GUI to use:
 93 --enable-gui=gtk      or: gtk2, motif, athena or auto
 94 --disable-gtk-check
 95 --disable-motif-check
 96 --disable-athena-check
 97
 98 --enable-gui defaults to "auto", so it will automatically look for a GUI (in
 99 the order of GTK, Motif, then Athena).  If one is found, then is uses it and
100 does not proceed to check any of the remaining ones.  Otherwise, it moves on
101 to the next one.

Vì vậy, tôi đã cố gắng không chỉ định --enable-guihy vọng nó sẽ tự tìm ra công cụ / bộ công cụ GUI nào để sử dụng ... Vẫn kết quả tương tự :(

CẬP NHẬT : Hơn nữa:

/opt/vim/bin$ ./vim -g
E25: GUI cannot be used: Not enabled at compile time

CẬP NHẬT :

Tôi có cần TẤT CẢ điều này không:

$ sudo aptitude search gtk | grep dev
p   gnunet-gtk-dev                  - secure, trust-based peer-to-peer framework
v   gtkgl-dev                       -                                           
p   gtkparasite                     - GTK+ debugging and development tool       
p   libaiksaurusgtk-1.2-dev         - graphical interface to the Aiksaurus toolk
v   libaiksaurusgtk-dev             -                                           
p   libcanberra-gtk-dev             - a simple abstract interface for playing ev
p   libchamplain-gtk-0.4-dev        - A Gtk+ widget to display maps (development
p   libclutter-gtk-0.10-dev         - Open GL based interactive canvas library G
p   libdbusmenu-gtk-dev             - Menus over DBus shared library for GTK    
p   libempathy-gtk-dev              - High-level library and user-interface for 
v   libequeue-gtk2-ocaml-dev        -                                           
p   libexif-gtk-dev                 - Library providing GTK+ widgets to display/
p   libgalago-gtk-dev               - libraries and header files for developing 
p   libgdu-gtk-dev                  - GTK+ standard dialog library for libgdu - 
p   libggadget-gtk-1.0-dev          - Google Gadgets GTK+ development files     
p   libggz-gtk-dev                  - GGZ Gaming Zone: core client embedding lib
p   libghc6-gtk-dev                 - A GUI library for Haskell (Gtk2Hs) -- GTK+
p   libghc6-gtkglext-dev            - A GUI library for Haskell (Gtk2Hs) -- gtkg
p   libghc6-gtksourceview2-dev      - A GUI library for Haskell (Gtk2Hs) -- GtkS
p   libghc6-soegtk-dev              - A GUI library for Haskell (Gtk2Hs) -- soeg
p   libglrr-gtk-dev                 - Development library of Grift (gtk)        
p   libgpod-nogtk-dev               - development files for libgpod (version wit
p   libgtk-directfb-2.0-dev         - Development files for the GTK+ library - D
p   libgtk-vnc-1.0-dev              - A VNC viewer widget for GTK+ (development
i   libgtk2.0-dev                   - Development files for the GTK+ library
p   libgtkada2-dev                  - Development files for libgtkada2
p   libgtkdatabox-0.9.0-1-dev       - A Gtk+ library to display large amounts of
v   libgtkdatabox-dev               -
p   libgtkextra-x11-2.0-dev         - A useful set of widgets for GTK+ (developm
p   libgtkgl2.0-dev                 - OpenGL area for GTK (development files)
p   libgtkglext1-dev                - OpenGL Extension to GTK+ (development file
p   libgtkglextmm-x11-1.2-dev       - C++ bindings for GtkGLExt (Development fil
p   libgtkhex0-dev                  - GNOME Hex editor for files (development he
p   libgtkhtml-editor-dev           - HTML rendering/editing library - editor wi
p   libgtkhtml2-dev                 - HTML rendering/editing library - developme
p   libgtkhtml3.14-dev              - HTML rendering/editing library - developme
p   libgtkhtml3.8-dev               - HTML rendering/editing library - developme
p   libgtkimageview-dev             - image viewer widget for GTK+ (development
p   libgtkmathview-dev              - rendering engine for MathML documents
p   libgtkmm-2.4-dev                - C++ wrappers for GTK+ 2.4 (development fil
p   libgtkmm-utils-dev              - utility functions, classes and widgets wri
p   libgtksourceview-dev            - development files for the GTK+ syntax high
p   libgtksourceview2.0-dev         - development files for the GTK+ syntax high
p   libgtksourceviewmm-1.0-dev      - C++ binding of GtkSourceView - development
p   libgtksourceviewmm-2.0-dev      - C++ binding of GtkSourceView - development
p   libgtkspell-dev                 - Development files for GtkSpell
p   libindicate-gtk-dev             - GNOME panel indicator applet - shared libr
p   libjana-gtk-dev                 - A set of GTK+ widgets to visualise libjana
p   liblablgtk2-gl-ocaml-dev        - OCaml bindings to GtkGL
p   liblablgtk2-gnome-ocaml-dev     - OCaml bindings to GNOME
p   liblablgtk2-ocaml-dev           - OCaml bindings to Gtk+ version 2
p   liblablgtkmathview-ocaml-dev    - OCaml bindings for libgtkmathview, a GTK w
p   liblablgtksourceview-ocaml-dev  - OCaml bindings for libgtksourceview, a sou
v   libnotify-dev-gtk2.10           -
p   libocamlnet-gtk2-ocaml-dev      - OCaml application-level Internet libraries
p   libpolkit-gtk-1-dev             - PolicyKit GTK+ API - development files
v   libsylpheed-claws-gtk2-dev      -
p   libtinymailui-gtk-dev           - Framework for mobile applications with e-m
p   libtinymailui-gtkhtml-dev       - Framework for mobile applications with e-m
p   libtracker-gtk-dev              - GTK+ widgets for apps that use tracker - d
v   libunicapgtk-dev                -
p   libunicapgtk2-dev               - graphical widgets for unicap - development
p   libwxgtk2.6-dev                 - wxWidgets Cross-platform C++ GUI toolkit (
p   libwxgtk2.8-dev                 - wxWidgets Cross-platform C++ GUI toolkit (
p   libzbargtk-dev                  - scanning and decoding bar codes (GTK+ bind
p   python-galago-gtk-dev           - Galago presence library (Python interface)
p   python-gtk2-dev                 - GTK+ bindings: devel files
p   telepathy-devel-gtk             - Telepathy Development packages for GTK

Có vẻ như hầu hết các gói tôi không cần. Ví dụ: Khung cho ứng dụng dành cho thiết bị di động, ... Trình kết xuất HTML, v.v. Cái tôi đã cài đặt là libgtk2.0-dev... Tuy nhiên, tôi không thể biên dịch gVIM.... Agrhhhhh


Tại sao bạn lại thực hiện "sudo ./cool [...]"? Kịch bản cấu hình không cần phải được chạy dưới quyền root. Tôi có thể hiểu việc thực hiện "sudo make isntall", mặc dù bạn không cần phải "thực hiện cài đặt" và sau đó "thực hiện cài đặt sạch" vì điều đó sẽ cài đặt Vim hai lần, chỉ cần "thực hiện cài đặt; làm sạch".
Heptite

Bạn không cần phải cài đặt một loạt các tệp dev ngẫu nhiên. Nếu tập lệnh cấu hình không thể tìm thấy các thư viện cần, nó sẽ từ chối xuất tệp tạo tệp. . Có vẻ như vấn đề của bạn là với configurechính nó. Tôi sẽ kiểm tra config.logvà xem cách nó xử lý --enable-guitùy chọn, v.v.
jpaugh

Tương tự như trên Askubfox: Askubfox.com/questions/132724/ Hãy
Ciro Santilli 改造

Câu trả lời:


7

Tôi gặp vấn đề tương tự khi cài đặt gvim 7.3 lên Centos 6.2 (x86_64)

Một số gói devel yêu cầu đã bị thiếu. Để cài đặt chúng:

yum groupinstall "Desktop Platform Development"

[Để xem tất cả các nhóm có sẵn: yum grouplist]

Sau đó, xây dựng từ nguồn chỉ làm việc

wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
bunzip2 vim-7.3.tar.bz2
tar xf vim-7.3.tar
cd vim73

./configure --prefix=/home/me/vim73
make
make install

Để khám phá những tập tin bị thiếu:

./configure | less

và tìm kiếm 'gui' cho thấy các tiêu đề liên quan đến X11 bị thiếu.


4

Trong ubfox tôi biên dịch vim theo cách sau:

sudo apt-get build-dep vim
sudo apt-get build-dep libx11-dev libxtst-dev

make distclean

./configure --with-compiledby="David Gamba <davidgamba@gambaeng.com>" \
--with-features=huge \
--enable-gui=auto \
--with-x \
--enable-rubyinterp \
--with-ruby-command=/usr/bin/ruby \
--enable-perlinterp \
--enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config \
--enable-fontset \
--enable-cscope \
--enable-gtk2-check \
--enable-gnome-check

make

Tại thời điểm này, cd srcvà kiểm tra X11 chính xác và hỗ trợ clipboard : ./vim --version. Sau đó:

sudo make install

Đối với Fedora (sử dụng máy tính để bàn KDE) tôi đã cài đặt các gói sau:

yum install gcc libX11-devel libXtst-devel ncurses-devel perl-ExtUtils-Embed ruby ruby-devel python-devel gtk2-devel libXt-devel

Và thay đổi lệnh configure của tôi thành như sau:

./configure --with-compiledby="David Gamba <davidgamba@gambaeng.com>" \
--with-features=huge \
--enable-gui=auto \
--with-x \
--enable-rubyinterp \
--with-ruby-command=/usr/bin/ruby \
--enable-perlinterp \
--enable-pythoninterp --with-python-config-dir=/usr/lib64/python2.7/config \
--enable-fontset \
--enable-cscope \
--enable-gtk2-check \
--enable-gnome-check \
--enable-fail-if-missing

Sau đó tôi nhận được như sau:

gvim --version
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled May  4 2014 19:43:27)
Included patches: 1-274
Compiled by David Gamba <davidgamba ...>

EDIT: Quên đề cập rằng đối với Fedora, tôi đã gặp lỗi với vị trí của xsubpptập lệnh perl nên cuối cùng tôi đã sửa đổi Makefile nhờ một số báo cáo lỗi trực tuyến.

--- a/src/Makefile      Fri May 02 15:46:14 2014 +0200
+++ b/src/Makefile      Sun May 04 19:56:20 2014 -0600
@@ -2465,7 +2465,7 @@

 auto/if_perl.c: if_perl.xs
        $(PERL) -e 'unless ( $$] >= 5.005 ) { for (qw(na defgv errgv)) { print "#define PL_$$_ $$_\n" }}' > $@
-       $(PERL) $(PERLLIB)/ExtUtils/xsubpp -prototypes -typemap \
+       $(PERL) /usr/bin/xsubpp -prototypes -typemap \
            $(PERLLIB)/ExtUtils/typemap if_perl.xs >> $@

  auto/osdef.h: auto/config.h osdef.sh osdef1.h.in osdef2.h.in

2

Bạn có thể sử dụng lệnh sau để tìm các phụ thuộc cần thiết cho gvim:

sudo apt-get build-dep vim

Nếu bạn chưa thêm kho lưu trữ nguồn trong tệp source.list trong / etc / apt /, bạn có thể mở tệp này, sao chép các mục bên trong và thay đổi "dep" thành "dep-src".

Sau khi tất cả các phụ thuộc được cài đặt, bạn sẽ có thể biên dịch vim với gui.


1

Điều này trông giống như trường hợp không có đủ *-develgói cài đặt. Hãy thử cài đặt tất cả các gói phát. Tôi nghĩ rằng có một gói meta để cài đặt hầu hết trong số họ. Hãy thử gnome-devel. Xin lỗi tôi không có Ubuntu gần đây ngay bây giờ.

Để biên dịch các biến thể khác nhau của vim (ví dụ: GUI và không phải GUI), bạn phải định cấu hình / biên dịch nó nhiều lần.


Trên các hệ thống giống Unix, không có lý do gì để xây dựng các phiên bản GUI và GUI không riêng biệt. Một "bình thường" xây dựng và cài đặt sẽ tạo ra một nhị phân duy nhất có tên vimmà tất cả các hình thức khác của Vim-- gvim, view, ex, vv .-- được liên kết. Vim biết nên áp dụng tính cách nào dựa trên tên mà nó được gọi.
garyjohn

Bạn nói đúng, bạn không cần phải làm vậy. Nhưng hầu hết các bản phân phối đều có các bản dựng riêng cho các biến thể GUI và không phải GUI, có sẵn trong các gói nhị phân khác nhau. Một cái gì đó giống như một minimalvà một full featuredphiên bản. OP dường như cũng muốn làm điều đó.
Keith

Tôi đang sử dụng KDE, vì vậy tôi thực sự có K Ubuntu
Nemoden

Điều đó nói rằng, tôi đồng ý với Keith rằng có vẻ như bạn đang thiếu một số gói phát triển. Có một lệnh apt-get sẽ cài đặt các phụ thuộc xây dựng của một mục tiêu được chỉ định, nhưng hiện tại tôi cũng không có sẵn một hệ thống Ubuntu.
garyjohn

1
Mặc dù vậy, bạn muốn xây dựng gtk + GUI, vì vậy bạn sẽ cần tất cả các gói phát gtk được cài đặt. gnome-devel là một gói meta sẽ kéo chúng vào. Chúng có thể là một gói cụ thể nhỏ hơn, gtk. Nhưng tôi không thể kiểm tra ngay bây giờ.
Keith

1

Tôi cũng đã thất bại trong việc xây dựng vim73 với tùy chọn enable-gui trên RHEL6.1 do thiếu X11 / Intrinsic.h . Linux của bạn có tập tin bao gồm không? Nếu không, bạn có thể lấy nó từ, tôi đoán, gói libxt-dev .


0

Xem đầu ra khi bạn biên dịch vim. Tôi đã không tự biên soạn vim nhưng tôi khá chắc chắn rằng sẽ có một số cảnh báo / lỗi liên quan đến các tệp bị thiếu cần thiết cho gvim.


Thật không may khi nó nói với bạn rằng bạn đang thiếu thứ gì đó, nó không cho bạn biết gói nào cung cấp cái đó hoặc tên của thư viện cung cấp, vì vậy đó là lý do tại sao bạn cần cung cấp nhiều hơn thế.
DavidG
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.