【LNK2019】 无法解析的外部符号 __iob
VS2010 解决链接错误:error LNK2019: 无法解析的外部符号 __iob
2011-03-29 13:31:46| 分类: 软件学习 | 标签:error lnk2019 _iob |字号 订阅
该错误主要是由于静态库在VC6编译而主程序在VC2010编译,大家用的CRT不同。解决办法,代码中增加
#ifdef __cplusplus
extern "C"
#endif
FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]};
此错误的产生根源:
在VC6的stdio.h之中有如下定义
_CRTIMP extern FILE _iob[];
#define stdin (&_iob[0])
#define stdout (&_iob[1])
#define stderr (&_iob[2])
stdin、stdout、stderr是通过查_iob数组得到的。所以,VC6编译的程序、静态库只要用到了printf、scanf之类的函数,都要链接_iob数组。
而在vc2010中,stdio.h中变成了
_CRTIMP FILE * __cdecl __iob_func(void);
#define stdin (&__iob_func()[0])
#define stdout (&__iob_func()[1])
#define stderr (&__iob_func()[2])
_iob数组不再是显式的暴露出来了,需要调用__iob_func()函数获得。所以vc6的静态库链接VC2010的C运行库就会找不到_iob数组.
通过重新定义
FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]};
就把vc6需要用到的_iob数组搞出来了
【LNK2019】 无法解析的外部符号 __iob相关推荐
- VS2015下解决:error LNK2019: 无法解析的外部符号 __iob_func
在使用VS2015下使用libjpeg-turbo静态库,编译时报错了: error LNK2019: 无法解析的外部符号 __iob_func,该符号在函数 output_message 中被引用 ...
- 错误 LNK2019 无法解析的外部符号 “public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_OutputArray
错误 LNK2019 无法解析的外部符号 "public: void __cdecl cv::Mat::copyTo(class cv::debug_build_guard::_Output ...
- error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR... 2011年08月05日 09:08:15
经过测试,能解决问题 error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR... 一,问题描述 MSVCRTD.lib(crtexew.obj) ...
- qt LNK2019 无法解析的外部符号
mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 "public: class QString __cdecl PushAlarmModel::get ...
- vs2008 error LNK2019: 无法解析的外部符号总结
做DLL的时候一直把报错"错误 1 error LNK2019: 无法解析的外部符号 "void __cdecl sevenaxes20170316(double,do ...
- “error LNK2019: 无法解析的外部符号”的几种可能原因
1.前言 error LNK2019: 无法解析的外部符号这个错之前见过很多次,能知道最根本的原因在于链接过程中没有搜索到程序用到的库文件,即*.lib. 笔记本重装了系统,有32Bit升到64Bit ...
- MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16
1.问题描述 做开源项目时,碰到VS2010报错如下: MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 _ ...
- VS2015 error LNK2019 无法解析的外部符号 _WinMain@16,该符号在函数 int __cdecl invoke_main(void)
前言 上一篇文章中,为了编译OpenCV的示例代码,然后搭建环境, 最后想直接运行示例demo,我在创建新工程的时候,直接创建了一个win32窗口项目,然后环境配置完成后,将opencv 的示例代码k ...
- CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...
1>------ 已启动生成: 项目: S_BulkLoop, 配置: Debug Win32 ------ 1>生成启动时间为 2014/3/14 17:52:26. 1>Init ...
最新文章
- android 当前置顶的控件,Android利用RecyclerView实现全选、置顶和拖拽功能示例
- vue-route动态路由
- 浅谈ASP.NET的内部机制(一)
- 193. 一个不错的日历插件
- 删除表的sql命令是什么_【技术干货】30个最适合初学者的SQL查询
- win10系统使用Anaconda安装opencv(python)
- MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
- 95-290-380-源码-内存管理-Buffer-NetworkBufferPool简介
- OpenWRT配置Zerotier实现内网映射
- 兴业银行网银签名控件官方版
- 华硕X370 Pro更新BIOS后黑屏自救记录
- android华为怎么截屏快捷键,华为P9/P9Plus怎么截图 快捷键截图方法介绍
- 谷歌账号--手机号无法验证
- 迅捷PDF转换器怎样转换文件格式
- 云计算机的价值,云计算现在的价值都有哪些?
- 【微信小程序】Java岗面试12家大厂成功跳槽
- Python爬虫爬取微信朋友圈
- 成为智者的四个敌人——唐望
- 大数据有哪些软件可以使用?
- 生产者和消费者问题(单一生产者和单一消费者)