技术标签: C++ Cocos2d-x3.x VS
在使用VS2015下使用libjpeg-turbo静态库,编译时报错了:
error LNK2019: 无法解析的外部符号 __iob_func,该符号在函数 output_message 中被引用
根据关键字在网上找到一些文章描述了类似的错误,大都是找不到外部符号__iob
,原因是VS2010上使用了VC6编译的DLL。虽然与我的情况不同,但是原理是一样的,我遇到的这个问题的原因是VS2015下使用VS2010编译的静态库,因为我用的libjpeg-turbo静态库是从官网下载编译好的版本(应该是vs2010这样的版本编译的)。
其实__iob_func
和__iob
都是用来定义stdin,stdout,stderr
,只是不同的VC版本实现方式不同。
下面是VS2015的头文件corecrt_wstdio.h
中对stdin,stdout,stderr
定义
<code class="language-cpp hljs has-numbering">_ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(<span class="hljs-keyword">unsigned</span>); <span class="hljs-preprocessor">#define stdin (__acrt_iob_func(0))</span> <span class="hljs-preprocessor">#define stdout (__acrt_iob_func(1))</span> <span class="hljs-preprocessor">#define stderr (__acrt_iob_func(2))</span></code>
原来在VS2015中__iob_func
改成了__acrt_iob_func
,所以我参照《【LNK2019】 无法解析的外部符号 __iob》这篇文章的方法在自己的代码中增加了一个名为__iob_func
转换函数:
<code class="language-cpp hljs has-numbering"><span class="hljs-comment">/* * 当libjpeg-turbo为vs2010编译时,vs2015下静态链接libjpeg-turbo会链接出错:找不到__iob_func, * 增加__iob_func到__acrt_iob_func的转换函数解决此问题, * 当libjpeg-turbo用vs2015编译时,不需要此补丁文件 */</span> <span class="hljs-preprocessor">#if _MSC_VER>=1900</span> <span class="hljs-preprocessor">#include "stdio.h" </span> _ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(<span class="hljs-keyword">unsigned</span>); <span class="hljs-preprocessor">#ifdef __cplusplus </span> <span class="hljs-keyword">extern</span> <span class="hljs-string">"C"</span> <span class="hljs-preprocessor">#endif </span> FILE* __cdecl __iob_func(<span class="hljs-keyword">unsigned</span> i) { <span class="hljs-keyword">return</span> __acrt_iob_func(i); } <span class="hljs-preprocessor">#endif /* _MSC_VER>=1900 */</span></code>
再次编译,错误消失。
其实吧,因为我用的libjpeg-turbo静态库是从官网下载编译好的版本(应该是vs2010这样的版本编译的),所以才有这个问题,如果自己重新把libjpeg-turbo的源码在vs2015下重新编译,就不会存在这个问题了。
PersistentVolume(持久卷,简称PV)是集群内,由管理员提供的网络存储的一部分。就像集群中的节点一样,PV也是集群中的一种资源。它也像Volume一样,是一种volume插件,但是它的生命周期却是和使用它的Pod相互独立的。PV这个API对象,捕获了诸如NFS、ISCSI、或其他云存储系统的实现细节。
这个我在前面讲了:关于计算机 存储器 与 处理器 存在较大的差距。接下来我给我自己 也给看我这篇文章的你,分析一下,为什么计算机的每个线程执行的顺序是具有不确定性的; 由于计算机 存储器 与 处理存 在较大的差距:所以 计算机系统 不得不加入一层读写速度尽可能接近处理器运算速度的告诉高速缓存(高速缓存就是讲需要运算的数据加载到高速缓存当中,让运算更快执行),当运算结束的时候,在把缓存的数据 写进内存。这么做的好处就感觉是Java设计模式讲的解耦规则,有点类似哈,进而减轻内存的...
新建工作空间catkin_ws/srcgit clone http....到src切换到工作空间catkin_makesource 。
今天,我照常开始进行一名“python 练习生”的自我训练。忽然,我发现我得安装一个新的包了。emm。。。。。。不就是一句pip install ×××的事吗?我直接就将这句话输入了进去,没想到,没想到,我大意了啊!这“年轻人”一点也不讲武德,上来就给我报错:哦,原来是版本的错误,我就照着它的提醒,来了这么一句话python.exe -m pip install --upgrade pip我觉得接下来应该没事了,我可以安心敲代码了,没想到,它又给我了一个惊喜:难道需要换个源?我就找了阿里的源,接
怎么操作华为手机恢复出厂设置后忘记密码,怎么办怎么注销.怎么删除更换重置.关联号解绑方法教程华为手机获取(绕开激活手机华为解锁帐户密码)教程无法激活设备id怎么拆机怎么解锁的步骤.教芯片损坏怎么弄好恢复了出厂后没手机验证进不了系统华为手机绑定那个账号怎么强制解锁学会华为手机怎么恢复出厂设置?6.先分享第一种免拆解屏幕锁的方法这里首先荣耀手机和华为手机入进入双清模式(通用))(关机.按紧音量+键和电源键进入),再对手机进行双清选恢复出厂设置,双清完后重启设备手机等开机后屏幕锁和一些文件锁能成功解好的.,
HDOJ1063和POJ1001是相同的题目,但是就此题而言,POJ的数据要弱于HDOJ。此题是高精度幂运算,在POJ上能AC的代码却在HDOJ上AC不了,后来仔细阅读题目才发现,程序中没有处理前导0的部分,就是说001.01得处理为1.01。经过实际测试,加上处理前导0的功能,既可以在HDOJ上AC,也可以在POJ上AC;如果不加处理前导0的功能,只能在POJ上AC。这就是许多像我一样的
参考:通常我们需要估计平面的方向,这就需要用到法线了,法线就是指垂直平面的线。PCL中有自动求出法线的方法,我们来看一看,首先假设我们有一个平面的点云cloud_xyz要求出法线首先我们先定义一个法线估计的对象nepcl::NormalEstimation ne;然后把要求的平面点云传给他ne.setInputCloud (cloud_xyz);这个方法求出cloud_xyz上每个点的法线方向,他...
local_costmap:global_frame: odom_combined# robot_base_frame这个通常不是/ base link就是/ base_ footprint对于TurtleBot应设为/ base_footprintrobot_base_frame: /base_footprintupdate_frequency: 3.0publish_frequency: 1.0# 这个参数和下一个参数通常会设为相反的值。全局地图通常是静态的,因此我们通常会把这个参数设为tr
E设置也会造成工商银行网站无法访问。单击IE-工具-internet选项-安全-受信任的站点-站点, 将https://mybank.icbc.com.cn https://www.icbc.com.cn 这两个网址 添加到区域中 . 然后将 *对该区域中的所有站点都要求服务器验证(https:)*前面的小方框选上.看可以访问吗?若您网页无法显示,请您尝试使用IP进行登录。 网站首页:ht
关系模型概念关系是关系模型(关系数据模型)的数据结构,给出了存储在关系数据库中数据的描述和数据的值。我们把对数据的描述称为数据的型,也叫关系模式;把数据本身称为数据的值。作为数据库的组成部分,值是动态的数据,随着应用的变化而变化,而对值的描述是净态的,也就是型是相对不变的内容,是关系型数据库的核心。(1)元组(Tuple)元组也称记录,关系表中的每行对应一个元组,组成元组的元素称为分量。数据库中的一个实体或实体之间的一个联系均使用一个元组来表示。(2)属性(Attrbute)关系中的每列对应一
其实就是将参数列表封装成了StructObjectInspector对象,如果想要校验参数,那么通过上述的方式,可以看到,调用getAllStructFieldRefs方法,获取所有的输入列列表,遍历就可以取到参数列表了。HIVE提供了丰富的内置函数,但是对于一些复杂逻辑还是需要自定义函数来实现,对此,HIVE也提供了一些自定义的接口和类。注意在UDTF函数中,会出现传入数据异常的问题,在这里我并没有校验参数,在实际生产中是需要校验参数的。UDAF:多进一出,多对一的关系数据。顾名思义,打扫干净,下一位。
windows和Linux系统中怎么关闭8080端口占用?1. windows中打开cmdnetstat -ano | findstr 8080找到进程的pid,如:TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 6148关掉pidtaskkill /pid 6148 -t -f2. Linux找到端口对应的进...