【问题标题】:Avoiding LNK2005 errors in Visual studio避免 Visual Studio 中的 LNK2005 错误
【发布时间】:2011-12-06 21:42:18
【问题描述】:

我有这些文件:

main.c

myLib.h

myLib.c

但是当我试图编译整个项目时,这个错误返回了:

1>myLib.obj : error LNK2005: _start_server already defined in main.obj
1>C:\Users\n3tpum63r\documents\visual studio 2010\Projects\NewMultiPlex2\Debug\main.exe : fatal error LNK1169: one or more multiply defined symbols found

我在谷歌上搜索了一下,发现了这个

"LNK2005 Errors When Link C Run-Time Libraries Are Linked Before MFC Libraries" 

但无法修复。

如何解决这个错误?

【问题讨论】:

    标签: c windows visual-studio visual-studio-2005


    【解决方案1】:

    去掉 myLib.h 的第 1 行 - 通常你不应该 #include 一个 .c 文件。

    相反,在 myLib.c 中,您可能应该在文件顶部 添加 #include "myLib.h" - 在您的项目中此时不是绝对必要的,但是当您使用它时养成一个好习惯开始“现实世界”编程。

    看起来您在 myLib.c 中缺少一堆系统#include。

    其余部分看起来或多或少还可以,它应该可以编译并与上述更改链接。

    【讨论】:

    • 我从 myLib.h 中删除了 #include myLib.c 并在 myLib.c 的顶部添加了 #include "myLib.h" 并且一切正常。谢谢。
    猜你喜欢
    • 2023-03-31
    • 1970-01-01
    • 2010-12-28
    • 2010-10-31
    • 2012-08-01
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 2016-02-19
    相关资源
    最近更新 更多