在Visual Studio中构建项目

时间:2009-03-25 23:19:33

标签: visual-studio build-process

我是Windows和Visual Studio的新手。我有很强的Linux编程背景。我正在尝试构建(仅构建一个用于编译和链接的单词)来自教科书的示例代码。我做了一个空项目,将源文件和头文件添加到项目中。代码编译得很好。但是,我在链接时收到所有这些错误。发生的事情是代码调用了VS无法找到的一堆函数。具体来说,所有错误都是

ping.obj:错误LNK2019未解析的外部符号

示例代码来自Ch11或Windows网络编程。它是关于创建用于制作ping程序的原始套接字。此外,代码附带一个Makefile,但我不知道如何使用VS ...

所以,基本上我需要知道如何将一些代码放入VS并使其正确构建。如果有人能帮助我,或者指出一个合适的资源,我真的很感激。

编辑:我正在使用VS 2008和C ++

edit2:我创建了一个makefile项目并用。填充了build命令 cl ping.cpp resolve.cpp -out:ping.exe Ws2_32.lib

现在它告诉我我的构建成功了,但是在任何地方都没有.exe ... Windows对我毫无意义。

这是它告诉我的:

1>------ Build started: Project: ping, Configuration: Debug Win32 ------
1>Performing Makefile project actions
1>Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>cl : Command line warning D9035 : option 'o' has been deprecated and will be removed           in a future release
1>ping.cpp
1>resolve.cpp
1>Generating Code...
1>Microsoft (R) Incremental Linker Version 9.00.21022.08
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>/out:ping.exe 
1>/out:ut:ping.exe 
1>ping.obj 
1>resolve.obj 
1>Ws2_32.lib 
1>Build log was saved at "file://c:\Documents and Settings\Devin.DEVIN-DESK\My     
Documents\Visual Studio 2008\Projects\raw_socks\ping\Debug\BuildLog.htm"
1>ping - 0 error(s), 1 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

edit3:这对我来说很有意义。我有两个标题和两个源文件,无论我做什么,我似乎都无法编译和链接。 Linux中的一个非常简单易用的过程在Windows中是错综复杂的。

3 个答案:

答案 0 :(得分:3)

我的猜测是你没有链接到一个必需的库,因为你正在编写ping应用程序,我猜它是Windows套接字库。您可能需要将ws2_32.lib添加为链接模块。

尝试这样做: 转到项目选项 - >链接器 - >输入

添加Ws2_32.lib

如果无法修复,请发布整个链接错误。它应该更清楚地说明缺少什么。

答案 1 :(得分:1)

我相信您还需要包含stdafx.h标头。它是IDE在您创建项目时放入项目的头文件。自从我使用VS 2008编写任何C ++以来已经有一段时间了,但如果我没记错的话,我遇到了很多问题。如果我记得,stdafx标头添加了一堆VS 2008编译器所需的编译器指令。

答案 2 :(得分:0)

是用C ++吗?

从msdn看一下这个article,我想这就是你要找的东西。我不知道你有什么版本的视觉工作室,但我不认为从版本到版本的变化很大。无论如何,你会在该网站上找到所有版本。