vim7.4官方源码在vs2013的编译方法及问题总结
生活随笔
收集整理的這篇文章主要介紹了
vim7.4官方源码在vs2013的编译方法及问题总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
vim7.4發(fā)布也有一段時候了,也該是把之前編譯的7.3重新編譯一下了,于是考慮著到最新的visual studio 2013編譯一下,也順便看看有沒有其它問題。
1、安裝vs2013,這個應(yīng)該不用說了。
2、下載vim源碼,ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz2
3、下載vim的最新補丁。
ftp://ftp.vim.org/pub/vim/patches/ ,把這個地址里面的7.4目錄全部用ftp工具下載下來,然后把目錄名字改成patches。
4、給源碼打補丁。
把vim-7.4.tar.bz2解壓,會有farsi libs nsis src等目錄,再把剛才下載的補丁的那個patches的文件夾全部放到這里面來。注意,給源碼打補丁必須要用到patch這個工具,而這個工具只有在linux環(huán)境或者windows下面的cygwin里才有,自行想辦法解決。
在終端里面使用命令:for file in patches/7.4.*; do patch -Np0 -i $file; done 給源碼打補丁。
驗證一下是否打補丁成功,打開vim源碼src目錄下面的version.c文件,定位到大概739行,在
static int included_patches[]這個數(shù)組的定義里面,看下面的數(shù)字是不是已經(jīng)變成了補丁序號,比如說打了61個補丁,就應(yīng)該顯示最大的是61。如果這里沒有顯示或者顯示不對,那說明打的補丁有問題,重新打。
5、如果你想開啟vim對其它程序語言的支持的話,請去各軟件的官網(wǎng)下載最新的依賴庫并安裝。我下載了這些所需的依賴包(注意,下載perl的時候不要下載strawberry perl,實測使用它無法編譯下去,而使用active perl則沒有問題):
ActivePerl-5.16.3.1603-MSWin32-x64-296746.msi
ActivePerl-5.16.3.1603-MSWin32-x86-296746.msi
ActiveTcl8.6.1.0.297577-win32-ix86-threaded.exe
ActiveTcl8.6.1.0.297577-win32-x86_64-threaded.exe
LuaForWindows_v5.1.4-46.exe
python-2.7.5.amd64.msi
python-2.7.5.msi
python-3.3.2.amd64.msi
python-3.3.2.msi
ruby-1.9.1-p0-i386-mswin32.zip
下載完之后,安裝它們,注意最好安裝到一個目錄下面以方便后面的操作,比如D:\vim_compile_tool。
6、修改源代碼,實現(xiàn)vim啟動界面 修改者 xxx abc@cde.com的功能。
在源碼的src目錄下面,修改vim.h這個文件。
在#include "vim.h" 的下一行加上這一行:
#define MODIFIED_BY "zhufeng chen "
7、修改適合vs2013編譯器的makefile文件Make_mvc.mak。
這個文件在源碼的src目錄下面,打開它。
在# Derive version of VC being used from nmake if not specified 這個區(qū)域下面,加入最新的vs2013的vc編譯器的定義,否則makefile會拒絕編譯,因為版本不匹配。
大約是424行,這個地方:
!if "$(_NMAKE_VER)" == "11.00.60610.1"
MSVCVER = 11.0
!endif
在上面這一段下面加上如下的這一段:
!if "$(_NMAKE_VER)" == "12.00.21005.1"
MSVCVER = 11.0
!endif
加上的這一段是為了加入vs2013的vc編譯器版本定義的支持。
611行,把SUBSYSTEM = windows改成 SUBSYSTEM = windows,5.01
639行,把SUBSYSTEM = console改成 SUBSYSTEM = console,5.01
改這兩行是為了讓vs2013的編譯器編譯出來的exe支持在win2000 sp1及以上的版本系統(tǒng)運行,不改的話,生成的exe只支持在vista及以上的系統(tǒng)運行,具體見我的上一篇日志。
8、修改ruby部分的源碼,否則無法編譯ruby支持。
把這個文件D:\vim_compile_tool\ruby\include\ruby-1.9.1\i386-mswin32\ruby\config.h
前三行
?????? #if _MSC_VER != 1200
?????? #error MSC version unmatch: _MSC_VER: 1200 is expected.
?????? #endif
全部注釋掉。
9、 因為mzscheme現(xiàn)在已經(jīng)變成racket,它已經(jīng)不再支持動態(tài)加載,而靜態(tài)加載的話,+mzscheme會造成生成的gvim.exe文件大很多而且必須要加入版本號完全一樣的dll才能運行g(shù)vim.exe,所以放棄這個選項。
10、修改vim源碼生成的exe的圖標,具體文件是源碼src目錄下面的vim.ico這個文件。
因為源碼自帶的vim.ico分辨率太低,所以可以自己去生成一個分辨率更高的ico文件,或者改成別的ico也行,我就自己制作了一個vim原版的分辨率的ico文件和一個macvim的高分辨率的ico圖標,分別用這兩個ico編譯出了兩個gvim.exe。
11、開始準備編譯32位、64位原生gvim.exe以及32位命令行版vim.exe。
12、修改src目錄下面的bigvim.bat,以下是我使用的例子。
:: command to build big Vim with OLE, Perl, Python, Ruby and Tcl
SET TOOLDIR=D:\vim_compile_tool\
nmake -f Make_mvc.mak SDK_INCLUDE_DIR="H:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include" FEATURES=HUGE GUI=yes OLE=yes CPUNR=pentium4 IME=yes GIME=yes CSCOPE=yes SNIFF=yes POSTSCRIPT=yes PERL=%TOOLDIR%perl32 DYNAMIC_PERL=yes PERL_VER=516 PYTHON=%TOOLDIR%Python27_32 DYNAMIC_PYTHON=yes PYTHON_VER=27 PYTHON3=%TOOLDIR%Python33_32 DYNAMIC_PYTHON3=yes PYTHON3_VER=33 RUBY=%TOOLDIR%ruby DYNAMIC_RUBY=yes RUBY_VER=19 RUBY_VER_LONG=1.9.1 TCL=%TOOLDIR%tcl32 TCL_VER=86 TCL_VER_LONG=8.6 DYNAMIC_TCL=yes LUA=%TOOLDIR%lua5.1 DYNAMIC_LUA=yes %1 USERNAME=zhufeng USERDOMAIN=zhufeng_m-PC
對這個文件簡單解釋一下。
TOOLDIR就是上面安裝的那些依賴包的路徑,注意,因為這個絕對路徑的最后已經(jīng)有了斜杠,所以在引用這個變量的時候,比如D:\vim_compile_tool\perl32這個路徑,就應(yīng)該是%TOOLDIR%perl32,不要再加一個斜杠。
SDK_INCLUDE_DIR這個是win32.mak這個文件的路徑,我給了一個參考,這個是隨著vs2013一起安裝上的。
最后的USERNAME和USERDOMAIN可以自定義的。
13、現(xiàn)在打開開始菜單或者開始屏幕里面的vs2013下面的Visual Studio Tool,里面會有VS2013 x64 本機工具命令提示,VS2013 x86 本機工具命令提示等幾個快捷方式,這個就是設(shè)置vc編譯器環(huán)境變量的快捷方式了,我們就要使用這其中的x86本機和x64本機來編譯出原生的32以及64位的gvim.exe和vim.exe。
14、先編譯32位的gvim.exe。
打開 VS2013 x86 本機工具命令提示, 會進入cmd窗口,在這個窗口里面cd到vim源碼的src目錄,然后輸入bigvim.bat回車。如果是按照上面的所有步驟來做的話,這時候就應(yīng)該開始編譯源碼了,會一直在滾動,大概過了三四分鐘的樣子,隨著“正在生成代碼”的提示過后,滾燙燙的gvim.exe就應(yīng)該已經(jīng)編譯好了,位于源碼src目錄里面。現(xiàn)在執(zhí)行vim.exe,輸入:ve,看支持的特性是不是和上面的bigvim.bat是對應(yīng)的,如果是正常對應(yīng)的話,就可以把這個gvim.exe復(fù)制出來準備使用了。
15、再編譯32位的vim.exe。
先清理一下src目錄,把這個目錄下面生成的一個以obj開頭的文件夾刪掉,再按文件的修改日期排序,把后面編譯生成的一些其它文件全部刪掉,再開始準備編譯不帶圖形的cmd版vim.exe。
只需要把bigvim.bat里面改一個地方,就是把GUI=yes改成GUI=no,再執(zhí)行bigvim.bat,沒有問題的話就會生成vim.exe。現(xiàn)在可以關(guān)閉這個cmd窗口了。
16、最后編譯64位的gvim.exe。
按照15步的方法清理一下源碼目錄,再把bigvim.bat改回去,GUI=yes。
這里的bigvim.bat還需要修改,因為現(xiàn)在是編譯64位的版本,所以依賴庫的目錄也要相應(yīng)改成64位版本,把bigvim.bat里面的依賴庫的路徑要修改一下。
打開13步里面的 VS2013 x64 本機工具命令提示,繼續(xù)執(zhí)行bigvim.bat,生成gvim.exe之后運行它,使用:ve看,如果第二行是
MS-Windows 64-bit GUI version with OLE? 就說明成功了。
最后附上我自編譯的gvim 7.4,有32位及64位版本,有原版圖標和macvim兩個128*128高分辨率圖標,自帶了自用的vimrc。有問題請Email至 Iwantcomputer@gmail.com交流。
http://pan.baidu.com/share/link?shareid=4257608227&uk=3943040330
轉(zhuǎn)載于:https://www.cnblogs.com/iwantcomputer/p/8489809.html
總結(jié)
以上是生活随笔為你收集整理的vim7.4官方源码在vs2013的编译方法及问题总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: uva 11992 - Fast Mat
- 下一篇: Training—Managing Au