VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 807|回复: 3

VS2017静态编译报错error LNK2019: 无法解析的外部符号 __imp__xxxx

[复制链接]
89_avatar_middle
最佳答案
2 
在线会员 发表于 2022-10-19 14:35:12 | 显示全部楼层 |阅读模式
3驿站币

如题,在VS2017中编译了一个静态库,然后在一个MFC的工程中调用这个静态库,调用的步骤如下:
1.选中该工程->属性->VC++目录->包含路径添加静态库的头文件和库目录添加静态库的路径
2.选中该工程->属性->链接器->输入->添加该静态库,例如xxxx.lib.
3.在工程处调用的头文件添加静态库的头文件
以上过程,静态编译时报错:
error LNK2019: 无法解析的外部符号 __imp__xxxx,该符号在函数 "public: virtual int __thiscall CTestApp::InitInstance(void)" (?InitInstance@CTestApp@@UAEHXZ) 中被引用。各位大佬,为啥这样配置后,无法链接到静态库呢?劳烦各位大佬们帮忙看看是什么原因,小弟在此多谢了!





上一篇:Win32 通过读写扇区实现克隆硬盘
下一篇:char类型和wchar_t
04_avatar_middle
最佳答案
22 
online_vip 发表于 2022-10-19 18:01:38 | 显示全部楼层
编译器版本不兼容?
89_avatar_middle
最佳答案
2 
ico_lz  楼主| 发表于 2022-10-20 08:54:50 | 显示全部楼层
xiao14116 发表于 2022-10-19 18:01
编译器版本不兼容?

谢谢,不是,已找到解决的办法,没有添加库里的某个宏定义。
19_avatar_middle
最佳答案
0 
在线会员 发表于 2022-11-8 19:13:49 | 显示全部楼层
我的理解是你的CTreeApp函数的InitInstance中以及引用这个符号做其他功能了,然后你再调用这个符号它就会这样提示。解决办法就是你在CTreeApp InitInstance中找你的这个外部符号,两个方法,一个是看这个符号在该引用中有没有实际作用,没有就把他的引用删了,这样你就能引用了;第二种方法就是在你的外部做一个空实现
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2023-3-20 23:29

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表