Visual c++ LNK2001-应该很容易解决。。但我能';我没看见!(VS2005)

Visual c++ LNK2001-应该很容易解决。。但我能';我没看见!(VS2005),visual-c++,linker-errors,Visual C++,Linker Errors,我在这里撞到了头。。正在尝试解决这些LNK2001错误。帮助页面给了我很多理由,但我看不出哪一个适用 P>请问有知识的VS 2005 C++人能帮助这些吗?问我问题。。这有时会有帮助。如果我不害怕看起来像一个精神主义者,我会找一只橡皮鸭来解释这一点:-)但我坐在办公室里 错误LNK2001:未解析的外部符号“struct ethernetParams\u t* ethernetData_g”(?ethernetData_g@@3PAUethernetParams_t@@A) 简单控制台.obj

我在这里撞到了头。。正在尝试解决这些LNK2001错误。帮助页面给了我很多理由,但我看不出哪一个适用

<> P>请问有知识的VS 2005 C++人能帮助这些吗?问我问题。。这有时会有帮助。如果我不害怕看起来像一个精神主义者,我会找一只橡皮鸭来解释这一点:-)但我坐在办公室里

错误LNK2001:未解析的外部符号“struct ethernetParams\u t* ethernetData_g”(?ethernetData_g@@3PAUethernetParams_t@@A) 简单控制台.obj

我的代码simple_console.cpp试图使用C中定义的结构,但是#包含工作和#stdafx的方式我无法理解。包含ethernetParams_t的标头包含在stdafx.h中

#include "CON_ethernet_defs.h"

请走开。。。链接器告诉您有一个未知的外部符号
ethernetData\u g
,其类型为
struct ethernetParams\u t*
。原因是,尽管在您包含的头中声明了
ethernetData\u g
,但它的定义来自您需要链接的另一个对象文件。由于未链接到适当的对象文件,链接器无法找到正确的定义


您丢失的目标文件必须来自您试图使用的库,因此请在该文件夹中查找.obj文件

为了使用其他人开发的代码(例如,在您的情况下使用静态库),您需要两件事:

  • 在项目(包含文件)中提供功能签名
  • 在项目(库文件)中提供函数实现

  • 看起来你做了第一件事,但不是第二件事。这就是如何解释链接器以这种非常神秘的形式给出的错误…

    @Attila和@mox可能已经解决了这个问题:您需要链接到包含您正在使用的函数实现的
    obj
    lib
    文件

    如果右键单击解决方案资源管理器中的项目,单击属性,然后选择链接器|输入,您可以查看并编辑要链接到的库/对象文件列表(“其他依赖项”)

    <>你说结构是用C定义的,而不是C++,那么另一个可能的问题是在包含文件中缺少了<代码>外“C”<代码>,请参见解释。