,,关于VS2019 C++项目同时出现LNK2005 和LNK1169 error 的解决办法

,,关于VS2019 C++项目同时出现LNK2005 和LNK1169 error 的解决办法

本文主要介绍VS2019 C项目中同时出现LNK2005和LNK1169错误的解决方案。这篇文章很详细,对大家的学习有一定的参考价值。有需要的朋友可以参考一下。

同时出现LNK2005和LNK1169错误的解决方案。项目场景:Visual Studio C项目问题描述原因分析cpp引用cpp,导致错误。解决方案1:如果是简单的项目,可以先移除引用的cpp文件,在解决方案管理器中创建新的头文件,复制移除的cpp文件的内容。效果如下。方案二:正式的措施是为引用的cpp文件创建一个单独的头文件,然后将这个头文件引入到需要的文件中。效果如下:问题总结

项目场景:Visual Studio C++项目

在Visual Studio的c项目中,将LinkStack.cpp引入main.cpp时,会出现以下错误:

问题描述

严重性代码表示禁止显示项目文件行。

错误LNK1169找到一个或多个多重定义符号queue 2f:\ cplusplus \ queue 2 \ debug \ queue 2 . exe 1。

警告C6011空指针“p”的取消引用。queue 2 F:\ Cplusplus \ queue 2 \ link stack . CPP 33

错误lnk 2005 " void _ _ cdecl destroy stack(struct node *)"(?Destroystack @ @ yaxaapaunode @ @ z)已经在LinkStack.obj中定义了queue 2f:\ cplusplus \ queue 2 \ main . obj 1

错误lnk 2005 " int _ _ cdeclgettop(struct node *,char)"(?GetTop@@YAHPAUnode@@AAD@Z)已经在LinkStack.obj中定义了queue 2f:\ cplusplus \ queue 2 \ main . obj 1

错误lnk 2005 " void _ _ cdecl init stack(struct node *)"(?Stack @ @ yaxaapaunode @ @ z)已经在LinkStack.obj中定义了queue 2f:\ cplusplus \ queue 2 \ main . obj 1

错误lnk 2005 " int _ _ cdeclpop(struct node *,char)"(?Pop @ Pop @ @ YAHAAPAUnode @ @ AAD @ Z AAD @ Z)queue 2f:\ cplusplus \ queue 2 \ main . obj已经在LinkStack.obj中定义

错误lnk 2005 " int _ _ cdecl push(struct node *,char)"(?push @ @ yahapaunode @ @ d @ z)queue 2f:\ cplusplus \ queue 2 \ main . obj 1已在LinkStack.obj中定义

错误lnk 2005 " int _ _ cdecl stack empty(struct node *)"(?Stack empty @ @ yahpaunode @ @ z)已经在LinkStack.obj中定义了queue 2f:\ cplusplus \ queue 2 \ main . obj 1

原因分析

cpp引用cpp导致报错

在这个Visual Studio项目中,main.cpp通过#include LinkStack.cpp直接引用了另一个cpp文件,导致了上面的错误。但是在Visual Studio中是不可能引用另一个cpp文件的,因为Visual Studio中的每一个cpp源文件在没有被main.cpp引用的时候也会被编译成obj文件,所以在直接# included到cpp文件中的时候会报错。

解决方案

方案1:如果是简单的项目,可以先移除被引用的cpp文件,在解决方案管理器中新建头文件,将被移除的cpp文件内容拷贝进来,效果如下。

方案2:正规措施是:给被引用的cpp文件创建单独的头文件,再将此头文件引入到需要的文件中,效果如下:

问题总结

在Visual Studio中,因为每个源文件都必须编译一次,所以不能在一个源文件中直接引用另一个源文件,只能以头文件的形式引用。

关于VS2019 C项目中同时出现LNK2005和LNK1169错误的解决方案,本文到此为止。有关VS2019 C项目的更多信息,请搜索我们之前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • ,,详解Asp.net web.config customErrors 如何设置
  • ,,访问网站提示An error occurred on the server when processing the URL的解决方法
  • ,,Java中的StackOverflowError错误问题及解决方法
  • ,,java.lang.ExceptionInInitializerError异常的解决方法
  • ,,Java StackOverflowError详解
  • ,,Java AbstractMethodError案例分析详解
  • ,,Java AbstractMethodError原因案例详解
  • sqlsyntaxerrorexception 无效字符,sqlsyntaxerrorexception 标识符无效
  • installshield wizard an error,installshield wizard安装卡住
  • error please select a valid python interpreter,a valid python interpreter
  • python出现runtimeerror,Python runtime
  • python的elif报错,python报错modulenotfounderror
  • error getaddrinfo,python getaddrinfo
  • ps显示configuration error,ps configuration error是什么意思
  • unicodeDecodeerror,unicodeencodeerror utf-8
  • 留言与评论(共有 条评论)
       
    验证码: