1. 程式人生 > >vim7.4官方原始碼在vs2013的編譯方法及問題總結 (2013-11-04 12:06:52)

vim7.4官方原始碼在vs2013的編譯方法及問題總結 (2013-11-04 12:06:52)


1、安裝vs2013,這個應該不用說了。

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環境或者windows下面的cygwin裡才有,自行想辦法解決。

在終端裡面使用命令:for file in patches/7.4.*; do patch -Np0 -i $file; done 給原始碼打補丁。

驗證一下是否打補丁成功,開啟vim原始碼src目錄下面的version.c檔案,定位到大概739行,在
static int included_patches[]這個陣列的定義裡面,看下面的數字是不是已經變成了補丁序號,比如說打了61個補丁,就應該顯示最大的是61。如果這裡沒有顯示或者顯示不對,那說明打的補丁有問題,重新打。

5、如果你想開啟vim對其它程式語言的支援的話,請去各軟體的官網下載最新的依賴庫並安裝。我下載了這些所需的依賴包(注意,下載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、修改原始碼,實現vim啟動介面 修改者 xxx [email protected]的功能。
在原始碼的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 這個區域下面,加入最新的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及以上的版本系統執行,不改的話,生成的exe只支援在vista及以上的系統執行,具體見我的上一篇日誌。

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現在已經變成racket,它已經不再支援動態載入,而靜態載入的話,+mzscheme會造成生成的gvim.exe檔案大很多而且必須要加入版本號完全一樣的dll才能執行gvim.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就是上面安裝的那些依賴包的路徑,注意,因為這個絕對路徑的最後已經有了斜槓,所以在引用這個變數的時候,比如D:\vim_compile_tool\perl32這個路徑,就應該是%TOOLDIR%perl32,不要再加一個斜槓。
SDK_INCLUDE_DIR這個是win32.mak這個檔案的路徑,我給了一個參考,這個是隨著vs2013一起安裝上的。
最後的USERNAME和USERDOMAIN可以自定義的。

13、現在開啟開始選單或者開始螢幕裡面的vs2013下面的Visual Studio Tool,裡面會有VS2013 x64 本機工具命令提示,VS2013 x86 本機工具命令提示等幾個快捷方式,這個就是設定vc編譯器環境變數的快捷方式了,我們就要使用這其中的x86本機和x64本機來編譯出原生的32以及64位的gvim.exe和vim.exe。

14、先編譯32位的gvim.exe。
開啟 VS2013 x86 本機工具命令提示, 會進入cmd視窗,在這個窗口裡面cd到vim原始碼的src目錄,然後輸入bigvim.bat回車。如果是按照上面的所有步驟來做的話,這時候就應該開始編譯原始碼了,會一直在滾動,大概過了三四分鐘的樣子,隨著“正在生成程式碼”的提示過後,滾燙燙的gvim.exe就應該已經編譯好了,位於原始碼src目錄裡面。現在執行vim.exe,輸入:ve,看支援的特性是不是和上面的bigvim.bat是對應的,如果是正常對應的話,就可以把這個gvim.exe複製出來準備使用了。

15、再編譯32位的vim.exe。
先清理一下src目錄,把這個目錄下面生成的一個以obj開頭的資料夾刪掉,再按檔案的修改日期排序,把後面編譯生成的一些其它檔案全部刪掉,再開始準備編譯不帶圖形的cmd版vim.exe。
只需要把bigvim.bat裡面改一個地方,就是把GUI=yes改成GUI=no,再執行bigvim.bat,沒有問題的話就會生成vim.exe。現在可以關閉這個cmd視窗了。

16、最後編譯64位的gvim.exe。
按照15步的方法清理一下原始碼目錄,再把bigvim.bat改回去,GUI=yes。
這裡的bigvim.bat還需要修改,因為現在是編譯64位的版本,所以依賴庫的目錄也要相應改成64位版本,把bigvim.bat裡面的依賴庫的路徑要修改一下。
開啟13步裡面的 VS2013 x64 本機工具命令提示,繼續執行bigvim.bat,生成gvim.exe之後執行它,使用:ve看,如果第二行是
MS-Windows 64-bit GUI version with OLE  就說明成功了。




最後附上我自編譯的gvim 7.4,有32位及64位版本,有原版圖示和macvim兩個128*128高解析度圖示,自帶了自用的vimrc。有問題請Email至 [email protected]交流。

http://pan.baidu.com/share/link?shareid=4257608227&uk=3943040330

相關推薦

vim7.4官方原始碼vs2013編譯方法問題總結 (2013-11-04 12:06:52)

1、安裝vs2013,這個應該不用說了。2、下載vim原始碼,ftp://ftp.vim.org/pub/vim/unix/vim-7.4.tar.bz23、下載vim的最新補丁。ftp://ftp.vim.org/pub/vim/patches/ ,把這個地址裡面的7.4目錄全部用ftp工具下載下來,然後把

git fabric 1.0.0 官方原始碼進行編譯,生成 docker images

系統環境:centos 7 64位 docker docker-compose 不要使用 centos yum 倉庫帶的 docker,版本過低。 安裝docker 官方的repo 裡面的版本 $ sudo tee /etc/yum.repos.d/docker.rep

QT 4.8 靜態庫編譯方法

最最初踏上QT之路是受到了XiaomaGee的指點,相比於常規的視窗程式開發,QT有著以下特點: 1、 優良的跨平臺特性(支援Win、Linux、Mac 不同的平臺下只需重新編譯即可使用) 2、 面向物件 3、 豐富的API 4、 支援2D/3D圖形渲染,支援OpenGL 5、 大量的開發文件(無需像VC一

osg3.2.1+vs2010++QT5.4.2+win7 64編譯方法

(一) VS2010     VS2010的安裝網上教程很多,不再敘述。 (二) Qt     在VS中開發程式,需要下載Qt安裝包和Qt的VS外掛。     我用的版本是Qt5.4.2 for Windows(VS2010,OpenGL)、VisualStud

gdb交叉編譯方法注意項

gdb 交叉編譯方法: 主機環境: 1.ubuntu14.04 2交叉編譯工具:arm-oe-linux-gnueabi 3.gdb版本:gdb-8.0.1 地址:http://www.gnu

虛擬機器VMware Workstation Pro下安裝ubuntu-14.04.4(64位)方法(附ubuntu-14.04-desktop-amd64.iso下載連結)

ubuntu-14.04-desktop-amd64.iso下載: 連結:http://pan.baidu.com/s/1bFi0d4 密碼:yx0l 零基礎linux使用入門教學視訊分享: 連結:http://pan.baidu.com/s/1kU4GKWB 密碼

4號團隊-團隊任務3:每日立會(2018-12-06

團隊資訊  團隊序號:04   開發軟體名稱:飛機大戰   今日整理人:王景園 學號 2016035107228 團隊職務:軟體工程師 團隊彙報  由於專案經理和軟體測試師生病住

Linux(ubuntu14.04)上編譯Android4.4原始碼的環境搭建編譯全過程

關於Linux(ubuntu14.04)上編譯Android原始碼的環境搭建詳細過程都是在sublime text中編輯好的,無奈,這次的資料丟失讓我不得不重新來回想手打一次了。可能很多細節問題,這次重新編輯文章時不會記得那麼清晰了,還請有問題的朋友在下面留言給我就好了。

vs2013編譯bitcoin原始碼(bitcoin-0.9.4

proto下的.h、.cc檔案是用工具Protobuf生成的,後面介紹。 在bitcoin-qt-test工程中新增src\qt\test目錄下的檔案。新增bitcoin-qt的程式碼檔案。工程結構如下: 第四節 設定工程屬性 設定工程屬性,除了設定前面介紹的依賴庫的相關路徑、lib庫外,還有些

OpenCV安裝流程原始碼編譯方法 + 配置VS

本篇文章記錄了安裝OpenCV 3.4.2及配置VS2017的方法,以及利用CMake從原始碼編譯適用於老版本VS2013的OpenCV 3.4.2的編譯及配置流程。本文也可以作為其他OpenCV及VS版本安裝配置方法的參考。 1 安裝OpenCV 3.4.2

OpenBLAS簡介在Windows7 VS2013原始碼編譯過程

OpenBLAS(Open Basic Linear Algebra Subprograms)是開源的基本線性代數子程式庫,是一個優化的高效能多核BLAS庫,主要包括矩陣與矩陣、矩陣與向量、向量與向量等

Linux(ubuntu14.04)上編譯Android4.4原始碼的環境搭建編譯

1.下載並安裝jdk6   注意,版本一定要是jdk6,其他版本都會有問題。   網上流傳的方法大都是apt-get install來安裝jdk,實際操作證明這樣是不行的,下面給出個下載jdk6的地址   https://jdk6.java.net/download.htm

Linux核心2.6.34.14新增系統呼叫編譯方法(CentOS-6.4-x86_64)

<?xml version="1.0" encoding="UTF-8"?> //我新增系統呼叫步驟,僅供參考,尤其是系統呼叫的實現部分,建議大家自己寫,除了我這種好像還可以用sys_open系列來寫 #define 核心版本 linux-2.6.34.14

SQLite3原始碼在WindowsWinCE平臺下的編譯方法

把原始碼下下來(第一項便是),上面有這麼一句話:This ZIP archive contains all C source code for SQLite 3.7.6.2 combined into a single source file (the amalgama

編譯安裝最新的qt/x11 4.3.4,qtopia 4.3.1 ,qtopia-core-opensource-src-4.3.3以及使用方法

首先去官方網站下載最新的這倆東西的原始碼包:http://trolltech.com/downloads/opensourceqt-x11-opensource-src-4.3.4.tar.gzqtopia-opensource-src-4.3.1.tar.gz 在/也就是根

Qt官方對OpenSSL的編譯方法的描述

lin openssl hack ons version building nss ssl 編譯 https://wiki.qt.io/MSYS2http://wiki.qt.io/Compiling_OpenSSL_with_MinGWhttps://wiki.qt.io

在CentOS7.4中安裝jdk的幾種方法配置環境變量

HR 環境 -o OS 安裝jdk 加載類 軟件包 上傳 jre_home 一、下載jdk jdk下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

vmware Tools 安裝方法 suse官方

suse vmtools zypper #1、新建掛載目錄 # 掛載VMware Tools安裝盤到/media/mnt/目錄 mkdir /media/mnt mount /dev/cdrom /media/mnt/ cd /media/mnt/ #2、復制文

機器學習中的概率模型和概率密度估計方法VAE生成式模型詳解之七(第4章 之 梯度估算)

.com 概率 roc 生成 詳解 time 學習 style BE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?機器學習中的概率模型和概率密度估計方法及V

機器學習中的概率模型和概率密度估計方法VAE生成式模型詳解之八(第4章 之 AEVB和VAE)

RM mes 9.png size mar evb DC 機器 DG ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?