从命令行使用 Visual C++ 2013 编译 C / SDL 程序
Compile a C / SDL program with Visual C++ 2013 from the Command Line
我该怎么做?我不想使用 Visual Studio IDE,但我想使用提供的编译器 (cl.exe) 和 VS2013 的开发人员命令提示符。
cl.exe /Wall /Tc main.c
将生成一个合适的 main.exe
.
在此之前:
- 确保 c:\Windows\System32 在 PATH
中
- 从 VC
的安装目录执行 vcvarsall.bat
如果您想使用库(例如 SDL),您需要使用 /link
选项列出库(可以使用 /LIBPATH
添加库路径)并且库包含目录 /I
选项。
我以前是通过命令行来做的
cl /EHsc /MD main.cpp /Fetest.exe /I F:\C++_Libraries\SDL2\SDL2-2.0.3\include /link /LIBPATH:F:\C++_Libraries\SDL2\SDL2-2.0.3\lib\x86 SDL2.lib SDL2main.lib /SUBSYSTEM:CONSOLE
我也遇到了这个问题。我必须做两件事来修复它:
- 添加前面答案中提到的
/SUBSYSTEM:CONSOLE
。
请注意,这会根据 error LNK2019: unresolved external symbol __imp_CommandLineToArgvW referenced in function main_getcmdline
行给出不同的错误。这可以通过执行下一步来解决。
- Link SDL 论坛中提到的
Shell32.lib
:https://discourse.libsdl.org/t/windows-build-fails-with-missing-symbol-imp-commandlinetoargvw/27256/2
所以我的最终命令行命令如下所示:
cl.exe /Zi /I "C:\...\SDL2-2.0.12\include" sdl_program.c /link "C:\...\lib\x64\SDL2main.lib" "C:\...\lib\x64\SDL2.lib" "C:\Program Files (x86)\Windows Kits\Lib.0.18362.0\um\x64\shell32.lib" /SUBSYSTEM:CONSOLE
我该怎么做?我不想使用 Visual Studio IDE,但我想使用提供的编译器 (cl.exe) 和 VS2013 的开发人员命令提示符。
cl.exe /Wall /Tc main.c
将生成一个合适的 main.exe
.
在此之前:
- 确保 c:\Windows\System32 在 PATH 中
- 从 VC 的安装目录执行
vcvarsall.bat
如果您想使用库(例如 SDL),您需要使用 /link
选项列出库(可以使用 /LIBPATH
添加库路径)并且库包含目录 /I
选项。
我以前是通过命令行来做的
cl /EHsc /MD main.cpp /Fetest.exe /I F:\C++_Libraries\SDL2\SDL2-2.0.3\include /link /LIBPATH:F:\C++_Libraries\SDL2\SDL2-2.0.3\lib\x86 SDL2.lib SDL2main.lib /SUBSYSTEM:CONSOLE
我也遇到了这个问题。我必须做两件事来修复它:
- 添加前面答案中提到的
/SUBSYSTEM:CONSOLE
。 请注意,这会根据error LNK2019: unresolved external symbol __imp_CommandLineToArgvW referenced in function main_getcmdline
行给出不同的错误。这可以通过执行下一步来解决。 - Link SDL 论坛中提到的
Shell32.lib
:https://discourse.libsdl.org/t/windows-build-fails-with-missing-symbol-imp-commandlinetoargvw/27256/2
所以我的最终命令行命令如下所示:
cl.exe /Zi /I "C:\...\SDL2-2.0.12\include" sdl_program.c /link "C:\...\lib\x64\SDL2main.lib" "C:\...\lib\x64\SDL2.lib" "C:\Program Files (x86)\Windows Kits\Lib.0.18362.0\um\x64\shell32.lib" /SUBSYSTEM:CONSOLE