该错误主要是由于静态库在VC6编译而主程序在VC2005编译,大家用的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数组。

而在vc2005中,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的静态库链接VC2005的C运行库就会找不到_iob数组.
通过重新定义
FILE _iob[3] = {__iob_func()[0], __iob_func()[1], __iob_func()[2]};
就把vc6需要用到的_iob数组搞出来了

解决链接错误:error LNK2001: 无法解析的外部符号 __iob相关推荐

  1. VS2005使用easyx图形库graphics.h链接过程出错:error LNK2001: 无法解析的外部符号 __iob

    在vs2005的stdio.h头文件中 #ifndef _STDSTREAM_DEFINED #define stdin (&__iob_func()[0]) #define stdout ( ...

  2. c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法

    c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法 时间:2017-05-09 12:32:06阅读:234评论 ...

  3. Error LNK2001 无法解析的外部符号 的几种情况及解决办法

    Error LNK2001 无法解析的外部符号 的几种情况及解决办法 多线程下的单例模式 这里要处理的是懒汉模式. [cpp] view plain copy  class Singleton { p ...

  4. error LNK2001: 无法解析的外部符号 解决方法

    error LNK2001: 无法解析的外部符号 解决方法 参考文章: (1)error LNK2001: 无法解析的外部符号 解决方法 (2)https://www.cnblogs.com/zeng ...

  5. error LNK2001: 无法解析的外部符号 解决方法

    error LNK2001: 无法解析的外部符号 LNK1120: 1 个无法解析的外部命令 将工程中的字符集改为UNICODE字符集即可 工程->属性 在配置属性->常规中设置

  6. error LNK2019 ,error LNK2001:无法解析的外部符号,LINK : fatal error LNK1104: 无法打开文件

    C++ 环境下更换项目名字后报错的问题 报错内容: error LNK2019: 无法解析的外部符号 *** error LNK2001: 无法解析的外部符号 *** LINK : fatal err ...

  7. VS2012编译文件报错——error LNK2001: 无法解析的外部符号 __imp___CrtDbgReportW

    错入显示如: 1>  正在生成代码... 1>SurfDescriptor.obj : error LNK2001: 无法解析的外部符号 __imp___CrtDbgReportW 1&g ...

  8. error LNK2001: 无法解析的外部符号 __imp____iob_func

    问题描述 在VS2017中使用VS2005编译的lib文件,报链接错误: error LNK2001: 无法解析的外部符号 __imp____iob_func 分析 在VS2005中,有__imp__ ...

  9. error LNK2001: 无法解析的外部符号 _DllMainCRTStartup@12

    当创建DLL项目时,尤其是一些资源转化成dll时,其不要dllmain()时,会出现:error LNK2001: 无法解析的外部符号 _DllMainCRTStartup@12  错误. 解决办法: ...

最新文章

  1. CRM User Status profile中Business Transaction字段的用途
  2. 把C++类成员方法直接作为线程回调函数
  3. 十三、Redis五大数据类型之五Zset
  4. 42. Vue、React 等前端项目部署,刷新 404 问题解决方案
  5. 蚂蚁金服共享智能技术实践:如何降低数据共享的难度?
  6. nginx介绍(三) - 虚拟主机
  7. MySQL知识总结(二)基本语句总结
  8. Oracle应用容器云的自由
  9. go 监测tcp 连接断开_TCP三次握手和四次挥手以及11种状态
  10. [前台]---js中去掉双引号或者单引号
  11. kvmweb管理工具_KVM的web管理界面
  12. 宁夏大学新华学院08计算机马宁,公 示
  13. HTML网页随笔笔记
  14. R语言堆叠占比柱状图_R语言执行单因素方差分析及多重比较
  15. iPhone应用程序的启动过程
  16. POJO类中属性必须使用包装数据类型
  17. STM32的IAP在线升级
  18. 字符在计算机中的存储
  19. sql server数据库错误数据恢复(数据库连接失效,无法附加查询)
  20. CentOS下连VisualSVN服务器时报Key usage violation错误的解决方案

热门文章

  1. while语法php格式,PHP While 循环
  2. php sslbug,PHP错误抑制符(@)导致引用传参失败Bug的分析
  3. 第一次体验python有感
  4. (JAVA)集合Collection3
  5. 13 python初学(函数)
  6. java中的Sort函数,你值得看
  7. 解决鼠标滚动的时候多次执行函数
  8. python 中调用shell命令
  9. ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
  10. [Leetcode][第141、142题][JAVA][环形链表][哈希表][快慢指针][数学推理]