vs2013建mfc工程,静态编译链接libjpeg和opencv?

您可以省去如下步骤,直接下载我编译好的:

  • 上次和大家聊了聊以太网的帧格式,本文会讲解IP数据报格式的定义. == 开门见山,先上图: 任何一个IP数据报都是由首部和数据两部分组成,而且首部基本是固定长度的,长度为20字节.这一点很重要,其他都 ...

  • 12:14:29 路由就是根据具体业务需求写的! 有的业务多,路由多,然后就需要细化 然后根据需求该! 怎么方便怎么来! 越努力,越幸运! 贴上笔记! 路由url根据需要可用修改, ...

}

我正在用C构建我的第一个基于OpenCV的应用程序.我的目标是构建一个中间docker镜像,它可以静态编译应用程序,以便它可以在生成的较小图像中独立运行.我愿意在此步骤中使用任何泊坞窗图像,但只是为了让您可以看到我拥有的内容,这里是重现整个环境的dockerfile: FROM ubuntu:/opencv/opencv/archive/${OPENCV_VERSION}.zip

确实存在需要链接但不存在的文件,有两个原因:

> pkg-config命令应该发出所有必要的编译标志,但在我之前的尝试中,我没有将-static标志包含在pkg-config中.添加-static标志时,请确保链接所需的额外包.我看到一些人遇到了这个问题的解决方案,添加了额外的标志,如-pthread,但我发现-static标志为我做了这个,所以更可取.

> ld:找不到-lgcc_s错误.这似乎是通过向g添加-static-libgcc标志来解决的.其中一些对我来说仍然是一个谜.

我希望将两个库作为静态包含在内,需要从apk以外的其他来源获取.这些是libjasper和libwebp.上面有构建步骤,可以根据需要获取和构建这些步骤,并将资源复制到所需的位置.

我切换到alpine ,只是因为我读过有些人用它取得了成功,我确信Ubuntu也可以这样做.它确实产生了一个小得多的图像,所以我喜欢这样.对于中间图像,这大约是900mb,虽然很大,但比1.9GB的Ubuntu图像要小得多.

实际生成的图像大约为44mb,包括所有静态链接的OpenCV库.对于那些需要小型docker镜像来运行单个C bin的人来说,这似乎是一个很好的解决方案.

}


基于对话框,不使用Unicode库,在静态库中使用MFC,完成(不使用Unicode库这个选不选都可以,完了可以自己设置,静态库中使用MFC也需要根据自己的需求自己设置,如果不需要生成脱离环境的.exe就可以用默认选项,而且这个也要与其他同时设置才行,具体的下面会涉及到

如果是初次配置OpenCV环境,需要在环境变量中增加以下路径(右击计算机,属性,打开控制面板,点击左侧高级系统设置,环境变量)

在系统变量的PATH中添加

注意是添加,原有项目千万不要删掉,每项之间以英文状态下的分号隔开

其中本例中D:\opencv为OpenCV安装目录,根据你安装的情况自行修改。后文相同,不再复述。

菜单,视图,属性管理器

双击工程名称,打开属性页

选择配置目录,VC++目录,包含目录,点击右侧下拉箭头,编辑

点击右上角图标添加文件夹(这里我已经添加过了)

同样,在“包含目录”下方的“库目录”中添加

链接器,输入,附加依赖项,编辑(这里我也已经配置过了,所以在单个里面是继承的值)


在属性页左上角配置中选择Release

同样,在Release页面附加依赖性中增加

文件名与前面相比,少了后缀"d"

点击确定,至此OpenCV环境已配置完成

但是这里这样配置还不能release成exe,脱离环境。下面介绍如何生成可以脱离环境在任何电脑上都可以运行的exe文件

链接器->输入->附加依赖项,编辑加入下列项:

链接器->输入->附加依赖项,编辑加入下列项:

点击“应用”,“确定”。

如果想用64位的还可以配置X64环境,步骤差不多。64位只能在64位机上运行,32位的32位机和64位机都可以

菜单,视图,工具箱,打开工具箱,选中要用的控件添加就可以了

 然后就全部结束了,大家可以尝试着编写代码了。可以在项目里面找到Release->My_MFC.exe,拷贝出来,就可以在其他机子上运行了。


}

我要回帖

更多关于 jpeg是静态图像压缩编码标准 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信