使用Quick-Cocos2dx-Community3.4创建了一个lua的cocos工程,用vs2017打开编译的时候libcocos2d项目报错了,出现了__imp__fprintf和__imp____iob_func 的错误,上网查了下,大概是因为vs版本不一致导致的。

以下是原帖内容:

-------------------------------------

使用vs2015编译ffmpeg的一个小项时,出现了__imp__fprintf和__imp____iob_func 的错误,google了一下,有的人 建议下载SDL源码重新编译一下,当然这个方案非常不科学。所以又继续搜,终于有所发现。

这是老外的原话:

In visual studio 2015, stdin, stderr, stdout are defined as follow :

#define stdin  (__acrt_iob_func(0))
#define stdout (__acrt_iob_func(1))
#define stderr (__acrt_iob_func(2))

But previously, they were defined as:

#define stdin  (&__iob_func()[0])
#define stdout (&__iob_func()[1])
#define stderr (&__iob_func()[2])

So now __iob_func is not defined anymore which leads to a link error when using a .lib file compiled with previous versions of visual studio.

To solve the issue, you can try defining __iob_func() yourself which should return an array containing {*stdin,*stdout,*stderr}.

Regarding the other link errors about stdio functions (in my case it was sprintf()), you can add legacy_stdio_definitions.lib to your linker options.

答题意思就是stdin, stderr, stdout 这几个函数vs2015和以前的定义得不一样,所以报错。

解决方法呢,就是使用{*stdin,*stdout,*stderr}数组自己定义__iob_func()

其实就是下边这样。

extern "C" { FILE __iob_func[3] = { *stdin,*stdout,*stderr }; }

然后__imp__fprintf的解决方法就是在链接器输入lib里加上legacy_stdio_definitions.lib这个LIB

-------------------------------------------------------------------------

我试了在libcocos2d项目的cocos2d.cpp里做如下修改:


#pragma comment(lib, "legacy_stdio_definitions.lib") //此为添加的代码#include "platform/CCPlatformMacros.h"
#include<stdio.h>  //此为添加的代码extern "C" { FILE __iob_func[3] = { *stdin,*stdout,*stderr }; }   //此为添加的代码NS_CC_BEGINCC_DLL const char* cocos2dVersion()
{return "Quick-Cocos2dx-Community 3.6";
}NS_CC_END

最后编译通过了。

原帖地址:

http://www.letg.top/?p=34

vs2017无法解析外部符号__imp__fprintf和__imp____iob_func相关推荐

  1. 无法解析的外部符号__imp__fprintf和 __imp____iob_func,SDL2

    1>SDL2main.lib(SDL_windows_main.obj) : error LNK2019: 无法解析的外部符号 __imp__fprintf,该符号在函数 _ShowError ...

  2. 错误 LNK2019,无法解析的外部符号__imp____iob_func; 无法解析的外部符号 __imp__fprintf 的解决方法。

    每次看到的LNK2019 的报错就有种崩溃的感觉,尤其是刚接触vc++的程序员. 我们经常会在网上搜索大神的技术文档,大神们提供的源代码都表示没有bug直接可以使用,但是我们下载以后发现各种报错,看到 ...

  3. VS在引用外库运行时显示无法解析外部符号

    VS引用外库在运行时显示无法解析外部符号 问题截图 原因 链接器无法链接到 .lib,可以查看下图位置看库是否引入成功. 解决 检查库的配置是否正确.下面列出我在引用第三方库时的配置过程和注意事项. ...

  4. CUDA编程时遇到无法解析外部符号threadIdx或blockIdx问题的解决办法

    在CUDA编程时遇到出现无法解析外部符号threadIdx或blockIdx问题的解决办法 在CUDA编程之前要确保工程项目的配置属性一致性如图一所示.然后点击项目->属性确保配置属性无误. V ...

  5. LNK2001:无法解析外部符号_sprintf

    LNK2001:无法解析外部符号_sprintf与LNK1104:无法打开文件"kernel32.lib"_臻訾胃的博客-CSDN博客 从网上下载一个VS的demo,编译之后老是报 ...

  6. SDL 库 无法解析的外部符号 __imp__fprintf

    VS2015 在链接器->命令行 里加入legacy_stdio_definitions.lib 另外一个常见错误关于stderr的用 extern "C" { FILE _ ...

  7. link2001错误无法解析外部符号metaObject

    http://blog.sina.com.cn/s/blog_791f544a0100r01b.html 1>MainWindowBottomWidget.obj : error LNK2001 ...

  8. OPENGL—错误调试—无法解析外部符号

    错误 1  error C1060: 编译器的堆空间不足 c:\program files (x86)\microsoft visual studio 11.0\vc\include\gl\glew. ...

  9. C++ TCp通信遇到的无法解析外部符号

    当在VS2005编写WINCE程序时,如果包含WinSock2.h后使用socket的相关函数,则编译会出现如下错误: 1>TcpServer.obj : error LNK2019: 无法解析 ...

最新文章

  1. DataX离线数据同步工具/平台
  2. hadoop2.X集群安装与应用
  3. log4j+flume+HDFS实现日志存储
  4. shell 的AWK
  5. insight face数据打包(一):LFW
  6. 机器学习(2)——监督学习
  7. 计算机禁止开机自启动,通过禁止开机启动项快速开机,提升电脑流畅度,拒绝自启...
  8. 机器学习核心概念完全解析(建议收藏)
  9. linux驱动与设备实例(字符设备(互斥读写),misc设备和platform_device)
  10. 斗鱼弹幕服务器第三方接入协议v1.6.2,.NET斗鱼直播弹幕客户端(上)
  11. 最简示例 简介洗牌函数 之 __shfl_sync() cuda 之 shuffle
  12. python中跳过本次循环的语句是_Python跳过for循环
  13. iOS微信第三方登录实现
  14. android图片上水印字体颜色,Android给图片添加文字和水印
  15. AJAX框架简笔画风景简单,好看简单的简笔画风景
  16. 10个提升客户服务体验的工具!
  17. Labview的下载地址
  18. Gephi UCI 世行数据 聚合数据 APP分类 Context
  19. 中华兵法大典--电子书下载
  20. 多个数字组成一个最大数

热门文章

  1. 苹果homekit,homeassistant,谷歌等智能生态系统,哪一款更加适合你?
  2. 饥荒插件制作应注意的几个问题
  3. Android仿QQ登陆
  4. ubuntu文本输入源,找不到中文拼音输入源
  5. serviceBattery mac换电池 mac怎么换电池mac拆机
  6. 代码故障检测列表(持续更新)
  7. ChatGPT 爆火!谷歌、微软、百度纷纷下场?
  8. tracepro应用实例详解_腾讯云服务器计费模式包年包月、按量计费和竞价实例选择建议...
  9. 控制台安装mysql步骤_mysql5.6安装步骤-win7系统
  10. hp ux安装mysql5.1.56_详细讲解Linux环境下MySQL5.1安装步骤