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相关推荐

  1. VS2015下解决:error LNK2019: 无法解析的外部符号 __iob_func

    在使用VS2015下使用libjpeg-turbo静态库,编译时报错了: error LNK2019: 无法解析的外部符号 __iob_func,该符号在函数 output_message 中被引用 ...

  2. 错误 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 ...

  3. error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR... 2011年08月05日 09:08:15

    经过测试,能解决问题 error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR... 一,问题描述 MSVCRTD.lib(crtexew.obj) ...

  4. qt LNK2019 无法解析的外部符号

    mainwindow.obj:-1: error: LNK2019: 无法解析的外部符号 "public: class QString __cdecl PushAlarmModel::get ...

  5. vs2008 error LNK2019: 无法解析的外部符号总结

    做DLL的时候一直把报错"错误    1    error LNK2019: 无法解析的外部符号 "void __cdecl sevenaxes20170316(double,do ...

  6. “error LNK2019: 无法解析的外部符号”的几种可能原因

    1.前言 error LNK2019: 无法解析的外部符号这个错之前见过很多次,能知道最根本的原因在于链接过程中没有搜索到程序用到的库文件,即*.lib. 笔记本重装了系统,有32Bit升到64Bit ...

  7. MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16

    1.问题描述 做开源项目时,碰到VS2010报错如下: MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 _ ...

  8. VS2015 error LNK2019 无法解析的外部符号 _WinMain@16,该符号在函数 int __cdecl invoke_main(void)

    前言 上一篇文章中,为了编译OpenCV的示例代码,然后搭建环境, 最后想直接运行示例demo,我在创建新工程的时候,直接创建了一个win32窗口项目,然后环境配置完成后,将opencv 的示例代码k ...

  9. CyAPI.lib(CyAPI.obj) : error LNK2019: 无法解析的外部符号...

    1>------ 已启动生成: 项目: S_BulkLoop, 配置: Debug Win32 ------ 1>生成启动时间为 2014/3/14 17:52:26. 1>Init ...

最新文章

  1. android 当前置顶的控件,Android利用RecyclerView实现全选、置顶和拖拽功能示例
  2. vue-route动态路由
  3. 浅谈ASP.NET的内部机制(一)
  4. 193. 一个不错的日历插件
  5. 删除表的sql命令是什么_【技术干货】30个最适合初学者的SQL查询
  6. win10系统使用Anaconda安装opencv(python)
  7. MySQL定时任务event,储存过程(定时删除指定时间前90天指定表的数据)
  8. 95-290-380-源码-内存管理-Buffer-NetworkBufferPool简介
  9. OpenWRT配置Zerotier实现内网映射
  10. 兴业银行网银签名控件官方版
  11. 华硕X370 Pro更新BIOS后黑屏自救记录
  12. android华为怎么截屏快捷键,华为P9/P9Plus怎么截图 快捷键截图方法介绍
  13. 谷歌账号--手机号无法验证
  14. 迅捷PDF转换器怎样转换文件格式
  15. 云计算机的价值,云计算现在的价值都有哪些?
  16. 【微信小程序】Java岗面试12家大厂成功跳槽
  17. Python爬虫爬取微信朋友圈
  18. 成为智者的四个敌人——唐望
  19. 大数据有哪些软件可以使用?
  20. 生产者和消费者问题(单一生产者和单一消费者)

热门文章

  1. 关于机房环境监控温湿度检测!
  2. H5 水平居中 水平垂直居中
  3. 2022-2027年中国医疗服务机器人行业市场调研及未来发展趋势预测报告
  4. python predictabel_统计学习方法的python实现
  5. 2014中国飞思卡尔技术论坛即将开幕
  6. 新版qq新增的功能(屏幕录制 屏幕翻译 屏幕文字识别 屏幕截图)
  7. 香蕉派,修改 uboot 和 kernel 串口波特率
  8. 计算机状态oxc0000001,电脑蓝屏代码0x00000001解决方法
  9. 论文写作——引言与语言表达
  10. CorelDRAW中如何安装字体