为什么我不能用Visual Studio 2015 RC命令行工具构建Vim?
昨天,我安装了。作为第一个测试,我尝试从源代码构建GVim 我使用为什么我不能用Visual Studio 2015 RC命令行工具构建Vim?,c,windows,visual-studio,vim,visual-studio-2015,C,Windows,Visual Studio,Vim,Visual Studio 2015,昨天,我安装了。作为第一个测试,我尝试从源代码构建GVim 我使用“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2015\Visual Studio Tools\Windows桌面命令提示符\VS2015 x64 Native Tools命令提示符.lnk”,设置打开了一个命令窗口 set include=%include%;C:\Program Files (x86)\Microsoft SDKs\Win
“C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2015\Visual Studio Tools\Windows桌面命令提示符\VS2015 x64 Native Tools命令提示符.lnk”
,设置打开了一个命令窗口
set include=%include%;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
因此,选择Win32.mak
文件。此外,我设定:
set MSVCVER=12.0
因为此时未检测到新的Visual Studio版本
在此之后,我有:
Framework40Version=v4.0
FrameworkDir=C:\Windows\Microsoft.NET\Framework64
FrameworkDIR64=C:\Windows\Microsoft.NET\Framework64
FrameworkVersion=v4.0.30319
FrameworkVersion64=v4.0.30319
FSHARPINSTALLDIR=C:\Program Files (x86)\Microsoft SDKs\F#\4.0\Framework\v4.0\
INCLUDE=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\\include\10.0.10056.0\ucrt;C:\Program Files (x86)\Windows Kits\8.1\include\shared;C:\Program Files (x86)\Windows Kits\8.1\include\um;C:\Program Files (x86)\Windows Kits\8.1\include\winrt;;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
LIB=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64;C:\Program Files (x86)\Windows Kits\10\\lib\10.0.10056.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64;
LIBPATH=C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64;C:\Program Files (x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral;\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral;
MSVCVER=12.0
Platform=X64
PROCESSOR_ARCHITECTURE=AMD64
UniversalCRTSdkDir=C:\Program Files (x86)\Windows Kits\10\
VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
VisualStudioVersion=14.0
VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\
VS110COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\
VS120COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\
VS140COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\
VSINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 14.0\
windir=C:\Windows
WindowsSdkDir=C:\Program Files (x86)\Windows Kits\8.1\
WindowsSDK_ExecutablePath_x64=C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\
WindowsSDK_ExecutablePath_x86=C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\
Framework40Version=v4.0
FrameworkDir=C:\Windows\Microsoft.NET\Framework64
FrameworkDIR64=C:\Windows\Microsoft.NET\Framework64
FrameworkVersion=v4.0.30319
FrameworkVersion64=v4.0.30319
FSHARPINSTALLDIR=C:\ProgramFiles(x86)\Microsoft SDK\F\4.0\Framework\v4.0\
INCLUDE=C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\INCLUDE;C:\ProgramFiles(x86)\Windows工具包\10\\include\10.0.10056.0\ucrt;C:\ProgramFiles(x86)\Windows Kits\8.1\include\shared;C:\ProgramFiles(x86)\Windows Kits\8.1\include\um;C:\ProgramFiles(x86)\Windows工具包\8.1\include\winrt;;C:\ProgramFiles(x86)\Microsoft SDK\Windows\v7.1A\Include
LIB=C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64;C:\ProgramFiles(x86)\Windows Kits\10\\lib\10.0.10056.0\ucrt\x64;C:\ProgramFiles(x86)\Windows Kits\8.1\lib\winv6.3\um\x64;
LIBPATH=C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64;C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\ATLMFC\LIB\amd64;C:\ProgramFiles(x86)\Windows Kits\8.1\References\CommonConfiguration\Neutral\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral;
MSVCVER=12.0
平台=X64
处理器体系结构=AMD64
UniversalCRTSdkDir=C:\ProgramFiles(x86)\Windows工具包\10\
VCINSTALLDIR=C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\VC\
VisualStudioVersion=14.0
VS100COMNTOOLS=C:\ProgramFiles(x86)\Microsoft Visual Studio 10.0\Common7\Tools\
VS110COMNTOOLS=C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\Common7\Tools\
VS120COMNTOOLS=C:\ProgramFiles(x86)\Microsoft Visual Studio 12.0\Common7\Tools\
VS140COMNTOOLS=C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\Common7\Tools\
VSINSTALLDIR=C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\
windir=C:\Windows
WindowsSdkDir=C:\ProgramFiles(x86)\Windows工具包\8.1\
WindowsSDK\u ExecutablePath\u x64=C:\Program Files(x86)\Microsoft SDK\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\
WindowsSDK\u ExecutablePath\u x86=C:\Program Files(x86)\Microsoft SDK\Windows\v8.1A\bin\NETFX 4.5.1工具\
我能够构建一个简单的程序:
C:\...\Temp> type t.c
#include
int main(void) {
printf("Hello %s\n", "Stackoverflow.com");
return 0;
}
C:\...\Temp> cl t.c
Microsoft (R) C/C++ Optimizing Compiler Version 19.00.22816 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
t.c
Microsoft (R) Incremental Linker Version 14.00.22816.0
Copyright (C) Microsoft Corporation. All rights reserved.
/out:t.exe
t.obj
C:\...\Temp> t.exe
Hello Stackoverflow.com
C:\…\Temp>类型t.C
#包括
int main(void){
printf(“你好%s\n”,“Stackoverflow.com”);
返回0;
}
C:\…\Temp>cl t.C
针对x64的Microsoft(R)C/C++优化编译器版本19.00.22816
版权所有(C)微软公司。版权所有。
t、 c
Microsoft(R)增量链接器版本14.00.22816.0
版权所有(C)微软公司。版权所有。
/输出:t.exe
t、 obj
C:\…\Temp>t.exe
你好,Stackoverflow.com
但是,当我发出命令来构建我的GVim(可以与Visual Studio 2013 CE工具配合使用)时,编译工作正常,但我得到以下链接错误:
C:\...\vim\src> nmake -f Make_mvc.mak CPU=AMD64 OPTIMIZE=SPACE GETTEXT=no NETBEANS=no CSCOPE=no DIRECTX=yes GUI=yes
C:\…\vim\src>nmake-f Make\u mvc.mak CPU=AMD64 OPTIMIZE=SPACE GETTEXT=no NETBEANS=no CSCOPE=no DIRECTX=yes GUI=yes
我截取了大部分错误消息,因为其中有很多错误消息:
gui_dwrite.obj : error LNK2001: unresolved external symbol memcmp
blowfish.obj : error LNK2001: unresolved external symbol memcmp
crypt.obj : error LNK2001: unresolved external symbol memcmp
sha256.obj : error LNK2001: unresolved external symbol memcmp
undo.obj : error LNK2001: unresolved external symbol memcmp
blowfish.obj : error LNK2019: unresolved external symbol memcpy referenced in function bf_e_cblock
winclip.obj : error LNK2001: unresolved external symbol memcpy
screen.obj : error LNK2001: unresolved external symbol memcpy
sha256.obj : error LNK2001: unresolved external symbol memcpy
gui.obj : error LNK2001: unresolved external symbol memmove
gui_w32.obj : error LNK2001: unresolved external symbol memmove
tag.obj : error LNK2001: unresolved external symbol memmove
term.obj : error LNK2001: unresolved external symbol memmove
ui.obj : error LNK2001: unresolved external symbol memmove
undo.obj : error LNK2001: unresolved external symbol memmove
screen.obj : error LNK2001: unresolved external symbol memmove
search.obj : error LNK2001: unresolved external symbol memmove
spell.obj : error LNK2001: unresolved external symbol memmove
syntax.obj : error LNK2001: unresolved external symbol memmove
os_mswin.obj : error LNK2001: unresolved external symbol memmove
os_win32.obj : error LNK2001: unresolved external symbol memmove
quickfix.obj : error LNK2001: unresolved external symbol memmove
regexp.obj : error LNK2001: unresolved external symbol memmove
misc2.obj : error LNK2001: unresolved external symbol memmove
normal.obj : error LNK2001: unresolved external symbol memmove
ops.obj : error LNK2001: unresolved external symbol memmove
option.obj : error LNK2001: unresolved external symbol memmove
memline.obj : error LNK2001: unresolved external symbol memmove
menu.obj : error LNK2001: unresolved external symbol memmove
message.obj : error LNK2001: unresolved external symbol memmove
misc1.obj : error LNK2001: unresolved external symbol memmove
getchar.obj : error LNK2001: unresolved external symbol memmove
hashtab.obj : error LNK2001: unresolved external symbol memmove
mark.obj : error LNK2001: unresolved external symbol memmove
...
misc2.obj : error LNK2001: unresolved external symbol fwrite
spell.obj : error LNK2001: unresolved external symbol fwrite
edit.obj : error LNK2019: unresolved external symbol isalnum referenced in function ins_ctrl_ey
regexp.obj : error LNK2001: unresolved external symbol isalnum
ui.obj : error LNK2001: unresolved external symbol strncpy
gui_w32.obj : error LNK2001: unresolved external symbol strncpy
libXpm.lib(parse.obj) : error LNK2001: unresolved external symbol strncpy
libXpm.lib(data.obj) : error LNK2001: unresolved external symbol strncpy
regexp.obj : error LNK2001: unresolved external symbol strncpy
screen.obj : error LNK2001: unresolved external symbol strncpy
...
main.obj : error LNK2001: unresolved external symbol close
memfile.obj : error LNK2001: unresolved external symbol close
libXpm.lib(parse.obj) : error LNK2001: unresolved external symbol free
libXpm.lib(hashtab.obj) : error LNK2001: unresolved external symbol free
libXpm.lib(data.obj) : error LNK2001: unresolved external symbol free
libXpm.lib(misc.obj) : error LNK2001: unresolved external symbol free
...
eval.obj : error LNK2001: unresolved external symbol free
misc2.obj : error LNK2001: unresolved external symbol free
os_win32.obj : error LNK2001: unresolved external symbol free
gui_w32.obj : error LNK2001: unresolved external symbol free
libcmt.lib(new_scalar.obj) : error LNK2001: unresolved external symbol malloc
libXpm.lib(simx.obj) : error LNK2001: unresolved external symbol malloc
eval.obj : error LNK2001: unresolved external symbol malloc
misc2.obj : error LNK2001: unresolved external symbol malloc
os_win32.obj : error LNK2001: unresolved external symbol malloc
gui_w32.obj : error LNK2001: unresolved external symbol malloc
normal.obj : error LNK2001: unresolved external symbol realloc
regexp.obj : error LNK2001: unresolved external symbol realloc
libXpm.lib(simx.obj) : error LNK2001: unresolved external symbol realloc
eval.obj : error LNK2001: unresolved external symbol realloc
memline.obj : error LNK2001: unresolved external symbol realloc
misc1.obj : error LNK2001: unresolved external symbol realloc
misc2.obj : error LNK2001: unresolved external symbol realloc
...
ex_docmd.obj : error LNK2001: unresolved external symbol stricmp
ops.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
option.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
search.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
spell.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
fold.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
getchar.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
main.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
mark.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
eval.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
ex_cmds.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
ex_docmd.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
ex_getln.obj : error LNK2001: unresolved external symbol __stdio_common_vfprintf
window.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
gui.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
gui_w32.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
version.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
spell.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
syntax.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
tag.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
term.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
regexp.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
screen.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
search.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
sha256.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
ops.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
option.obj : error LNK2001: unresolved external symbol __stdio_common_vsprintf
...
_crt_atexit referenced in function _onexit
libcmt.lib(utility.obj) : error LNK2019: unresolved external symbol _crt_at_quick_exit referenced in function at_quick_exit
libcmt.lib(utility.obj) : error LNK2019: unresolved external symbol _cexit referenced in function __scrt_dllmain_uninitialize_c
libcmt.lib(exe_winmain.obj) : error LNK2001: unresolved external symbol _cexit
libcmt.lib(new_scalar.obj) : error LNK2019: unresolved external symbol _callnewh referenced in function "void * __cdecl operator new(unsigned __int64)" (??2@YAPEAX_K@Z)
libcmt.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol _seh_filter_exe referenced in function "int `int __cdecl __scrt_common_main_seh(void)'::`1'::filt$0" (?filt$0@?0??__scrt_common_main_seh@@YAHXZ@4HA)
libcmt.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol _set_app_type referenced in function "int __cdecl pre_c_initialization(void)" (?pre_c_initialization@@YAHXZ)
libcmt.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol __setusermatherr referenced in function "int __cdecl pre_c_initialization(void)" (?pre_c_initialization@@YAHXZ)
libcmt.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol _configure_narrow_argv referenced in function "int __cdecl pre_c_initialization(void)" (?pre_c_initialization@@YAHXZ)
libcmt.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol _get_narrow_winmain_command_line referenced in function "int __cdecl __scrt_common_main_seh(void)" (?__scrt_common_main_seh@@YAHXZ)
libcmt.lib(exe_winmain.obj) : error LNK2019: unresolved external symbol _initterm referenced in function "int __cdecl __scrt_common_main_seh(void)" (?__scrt_common_main_seh@@YAHXZ)
...
libXpm.lib(rgb.obj) : error LNK2019: unresolved external symbol strdup referenced in function xpmGetRGBfromName
oldnames.lib(strdup.obj) : error LNK2001: unresolved external symbol strdup
oldnames.lib(strdup.obj) : error LNK2001: unresolved external symbol _strdup
gvim.exe : fatal error LNK1120: 183 unresolved externals
gui_dwrite.obj:错误LNK2001:未解析的外部符号memcmp
blowfish.obj:错误LNK2001:未解析的外部符号memcmp
crypt.obj:错误LNK2001:未解析的外部符号memcmp
sha256.obj:错误LNK2001:未解析的外部符号memcmp
undo.obj:错误LNK2001:未解析的外部符号memcmp
blowfish.obj:错误LNK2019:函数bf_e_cblock中引用的未解析外部符号memcpy
winclip.obj:错误LNK2001:未解析的外部符号memcpy
screen.obj:错误LNK2001:未解析的外部符号memcpy
sha256.obj:错误LNK2001:未解析的外部符号memcpy
gui.obj:错误LNK2001:未解析的外部符号memmove
gui_w32.obj:错误LNK2001:未解析的外部符号memmove
tag.obj:错误LNK2001:未解析的外部符号memmove
term.obj:错误LNK2001:未解析的外部符号memmove
ui.obj:错误LNK2001:未解析的外部符号memmove
undo.obj:错误LNK2001:未解析的外部符号memmove
screen.obj:错误LNK2001:未解析的外部符号memmove
search.obj:错误LNK2001:未解析的外部符号memmove
spell.obj:错误LNK2001:未解析的外部符号memmove
syntax.obj:错误LNK2001:未解析的外部符号memmove
os_mswin.obj:错误LNK2001:未解析的外部符号memmove
os_win32.obj:错误LNK2001:未解析的外部符号memmove
quickfix.obj:错误LNK2001:未解析的外部符号memmove
regexp.obj:错误LNK2001:未解析的外部符号memmove
misc2.obj:错误LNK2001:未解析的外部符号memmove
normal.obj:错误LNK2001:未解析的外部符号memmove
ops.obj:错误LNK2001:未解析的外部符号memmove
option.obj:错误LNK2001:未解析的外部符号memmove
memline.obj:错误LNK2001:未解析的外部符号memmove
menu.obj:错误LNK2001:未解析的外部符号