error LNK2019: 无法解析的外部符号的几种情况探讨[通俗易懂]

error LNK2019: 无法解析的外部符号的几种情况探讨[通俗易懂]errorLNK2019:无法解析的外部符号的几种情况探讨。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

       error LNK2019: 无法解析的外部符号,这种问题在windows C++编程中,很多人应该都遇到过,那出现这个问题一般有哪些情况呢?

       情况一,就是没有引入相应的lib库。这个情况是最容易想到的。对于lib库是要链接到exe程序中的,如果在链接的时候,找不到函数对应的符号所在的lib,那就会报error LNK2019: 无法解析的外部符号,有的时候还会提示,在什么地方调用了,如下所示:

error LNK2019: 无法解析的外部符号 _XXXXX,该符号在函数 _FFFFF中被引用。

如果是这种情况,只需要将相应的lib加入到工程中编译就可以了。

       情况二,在一个工程中,有很多个子工程,然后,每个工程中都有一些公共的头文件,比如define.h,error.h等,当把这些合到一个工程中编译的时候,可能会把每个子工程的include目录放在附加包含目录中,这样编译的时候就有可能引用了不是它自己的文件,比如:

project/demo1/include

project/demo2/include

在这2个目录下都有error.h,然后在附件包含目录中,包含这2个目录。

而在引用的时候都是这样写:

#include <error.h>

这样在链接的时候,就存在不确定性。可能会出现,demo2引用demo1的error.h的可能。这种情况是不好查的。最近在整合一个项目就遇到这种情况,有20多个工程,都有几个相同名字的文件,编译的时候,不报错,因为那个头文件可以引用到,引用的是别的工程的,这样就找不到它的实现文件。

这个情况解决方法是,更改相同的文件名字为每个子工程自己的,让文件名在一个项目中尽量唯一。这个其实也是一个架构和设计的问题。

       情况三,工程是一个目录比如,project/test/test.vcproj,而引用函数的实现目录在project/test1/file.cpp,这种情况下也会报error LNK2019: 无法解析的外部符号

这个情况的解决方法是,将project/test1目录放到附件包含目录中。

 

       当然,可能还有其他的情况,以后遇到再补充和完善。希望能对遇到此问题的朋友有点帮助。

,

 

 转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/16917521

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/185363.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring Cloud Security 整合 OAuth 2.0,从原理到实战一次说明白

    Spring Cloud Security 整合 OAuth 2.0,从原理到实战一次说明白若有收获,请记得分享和转发哦本篇文章介绍一下OAuth2.0相关的知识点,并且手把手带大家搭建一个认证授权中心、资源服务进行OAuth2.0四种授权模式的验证,案例源码详细,一梭子带大家了…

    2022年5月21日
    63
  • 在Eclipse中使用JUnit4进行单元測试(0基础篇)

    在Eclipse中使用JUnit4进行单元測试(0基础篇)

    2021年11月30日
    38
  • java 优先级队列_JAVA 队列

    java 优先级队列_JAVA 队列优先级队列是比栈和队列更专用的结构,在多数情况下都非常有用。优先级队列像普通队列一样,有一个队头和队尾,并且也是从队头移除数据。优先级队列中,数据按关键词有序排列,插入新数据的时候,会自动插入到合适的位置保证队列有序。举个例子来说,一组整型数,如果使用优先级队列的话,不管队列之前放入的数据如何,后面添加进去的数据总会被按照升序或者降序排列,当然这个只是优先级队列最基本的使用,在实际生产中可能有…

    2022年9月15日
    0
  • JavaScript 对象Array,Map,Set使用

    for(int i = 0 ;i 在说明每个对象的用法之前,首先说明 JavaScript 对象的使用一定要注意浏览器的兼容性问题!尤其是IE的版本!!!! }想查看具体的API请查询 JavaScript 对象 这里面有具体的API介绍!Array,Map,Set使用细则参考上面的JavaScript 对象!下面主要说一下Map!MapJavaScript 的Map

    2022年2月26日
    49
  • java 接口学习

    你应该知道接口是一种契约,它与实现方式无关但是类,即使是抽象类,你都能自定义成员变量,而成员变量往往就与实现方式有关。这一点的实际意义不大。但是有一点,类会暴露太多不必要,甚至不能暴露的东西,你

    2021年12月22日
    46
  • M10F支持扩展卡吗_ibb与obb

    M10F支持扩展卡吗_ibb与obbeBPF实战编程接口、前端:bcc和bpftrace详解、原理、实例等

    2022年9月16日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号