【发布时间】:2014-03-22 14:34:56
【问题描述】:
我正在尝试在命令行上使用 Visual Studio 2008 构建程序。 看完Walkthrough: Compiling a Native C++ Program on the Command Line。 我尝试了以下方法:
运行 vcvaralls.bat 设置环境:
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
编写了这个简单的 C++ 应用程序:
#define _WIN32_WINNT 0x501
#include <windows.h>
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
MessageBoxA(0,"Hello","Hello",MB_OK);
return 0;
}`
并试图编译它:
cl /EHsc /GA simple.cpp
这会发生:
/out:simple.exe
simple.obj
simple.obj : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 referenced in function _WinMain@16
simple.exe : fatal error LNK1120: 1 unresolved externals
这让我相信我需要包含 user32.lib 或类似文件。 我无法从视觉工作室手册中弄清楚如何做到这一点。
【问题讨论】:
-
您可能想寻找一些似乎与链接有关的compiler options。
-
我经常发现使用 Visual Studio IDE 很有帮助。一旦我在那里构建了我的项目,我可以转到项目属性中的最后一个选项卡并查看它决定放入的所有命令行选项,然后将这些选项复制/粘贴到我的命令行中。跨度>
-
好主意,jia103。
-
打开帮助索引并寻找生成文件向导。您也可以右键单击项目名称,单击属性,配置管理器并查看命令行选项。
-
@Someprogrammerdude,我想指出,在发布这个问题之前,我花了好几个小时在编译器上筛选 MSDN 文档。事实证明没有特殊的选项,您只需将库名称与源文件一起包含在内。这不是我所期望的,因此没有寻找。
标签: c++ c winapi visual-c++ command-line