我正在尝试使用 visual studio 2008 在 win7 64 位上构建 64 位 vim。我的 python34 是 64 位版本。
以下是我所做的。
- hg 获取 vim 源代码。
- 放
VCDIR="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC"
- 称呼
%VCDIR%\bin\amd64\vcvarsamd64.bat
%VCDIR%\bin\nmake -f Make_mvc.mak CPU=AMD64 GUI=yes OLE=yes PYTHON3=C:\Python34 DYNAMIC_PYTHON3=yes PYTHON3_VER=34 CSCOPE=yes FEATURES=HUGE ARABIC=no FARSI=no OPTIMIZE=SPEED
但当构建失败时
link /RELEASE /nologo /subsystem:windows /LTCG:STATUS -out:gvim.exe .\ObjGOHAMD64\blowfish.obj .\ObjGOHAMD64\buffer.obj .\ObjGOHAMD64\charset.obj .\ObjGOHAMD64\diff.obj .\ObjGOHAMD64\digraph.obj .\ObjGOHAMD64\edit.obj
.\ObjGOHAMD64\eval.obj .\ObjGOHAMD64\ex_cmds.obj .\ObjGOHAMD64\ex_cmds2.obj .\ObjGOHAMD64\ex_docmd.obj .\ObjGOHAMD64\ex_eval.obj .\ObjGOHAMD64\ex_getln.obj .\ObjGOHAMD64\fileio.obj .\ObjGOHAMD64\fold.obj .\ObjGOHAMD64\getchar.obj .\ObjGOHAMD64\hardcopy.obj .\ObjGOHAMD64\hashtab.obj .\ObjGOHAMD64\main.obj .\ObjGOHAMD64\mark.obj .\ObjGOHAMD64\mbyte.obj .\ObjGOHAMD64\memfile.obj .\ObjGOHAMD64\memline.obj .\ObjGOHAMD64\menu.obj .\ObjGOHAMD64\message.obj .\ObjGOHAMD64\misc1.obj .\ObjGOHAMD64\misc2.obj .\ObjGOHAMD64\move.obj .\ObjGOHAMD64\normal.obj .\ObjGOHAMD64\ops.obj .\ObjGOHAMD64\option.obj .\ObjGOHAMD64\os_mswin.obj .\ObjGOHAMD64\winclip.obj .\ObjGOHAMD64\os_win32.obj .\ObjGOHAMD64\pathdef.obj .\ObjGOHAMD64\popupmnu.obj .\ObjGOHAMD64\quickfix.obj .\ObjGOHAMD64\regexp.obj .\ObjGOHAMD64\screen.obj .\ObjGOHAMD64\search.obj .\ObjGOHAMD64\sha256.obj .\ObjGOHAMD64\spell.obj .\ObjGOHAMD64\syntax.obj .\ObjGOHAMD64\tag.obj .\ObjGOHAMD64\term.obj .\ObjGOHAMD64\ui.obj .\ObjGOHAMD64\undo.obj
.\ObjGOHAMD64\window.obj .\ObjGOHAMD64\vim.res .\ObjGOHAMD64\gui.obj .\ObjGOHAMD64\gui_beval.obj .\ObjGOHAMD64\gui_w32.obj .\ObjGOHAMD64\os_w32exe.obj .\ObjGOHAMD64\if_ole.obj .\ObjGOHAMD64\if_python3.obj .\ObjGOHAMD64/if_cscope.obj .\ObjGOHAMD64/netbeans.obj .\ObjGOHAMD64/xpm_w32.obj .\ObjGOHAMD64\version.obj oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib comdlg32.lib ole32.lib uuid.lib /machine:AMD64 /nodefaultlib gdi32.lib version.lib winspool.lib comctl32.lib advapi32.lib shell32.lib /machine:AMD64 /nodefaultlib libcmt.lib oleaut32.lib user32.lib /nodefaultlib:python34.lib WSock32.lib xpm\x64\lib\libXpm.lib /PDB:gvim.pdb -debug
fatal error C1905: Front end and back end not compatible (must target same processor).
LINK : fatal error LNK1257: code generation failed
您可以看到它link.exe
仍然尝试链接一些 32 位库。
你能告诉我如何解决这个问题吗?
更新:
我的 python 告诉我:Python 3.4.0 (v3.4.0:04f714765c13,2014 年 3 月 16 日,19:25:23) [MSC v.1600 64 位 (AM D64)] 在 win32 上
我不知道为什么 64 位 Python 有win32在最后。或者有人知道在哪里可以获得 win64 上的 64 位 python?
答案1
在我的工作空间中再次阅读了 Make_mvc.bat 并听取了 Ben 的建议后,我终于成功编译了我的 64 位 vim。
我失败的原因就是 Ben 提到的,之前的编译还保留着。
如果您再次遇到同样的问题,请检查您是否有“ObjGOHAMD64”这样的文件夹。您可以手动删除它以进行干净的构建。