windows 编译libyuv

news2024/12/27 18:17:20

一、libyuv下载

git clone https://chromium.googlesource.com/external/libyuv

二、libjpeg-turbo下

git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git

三、编译可以参考 BUILDING.md

需要环境: VS2019

CMake

YASM

启动vs工具 编译:

cd libjpeg-turbo
cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=Release
nmake

编译生成

jpeg-static.lib Static link library for the libjpeg API

jpeg{version}.dll DLL for the libjpeg API

jpeg.lib Import library for the libjpeg API

turbojpeg-static.lib Static link library for the TurboJPEG API

turbojpeg.dll DLL for the TurboJPEG API

turbojpeg.lib Import library for the TurboJPEG API

四、打开libyuv CMakeLists.txt

1、默认libyuv是没有配置JPEG的

2、libyuv目录下创建libjpeg,拷贝库和头文件

-libjpeg

    -jpeglib.h

    -jconfig.h

    -jmorecfg.h

    -lib

        -jpeg.lib

        -jpeg62.dll

3、修改CMakeLists.txt

A、SET ( ly_lib_shared ${ly_lib_name}_shared )后面添加

SET ( JPEG_INCLUDE_DIR ${ly_base_dir}/libjpeg)
SET ( JPEG_LIBRARY jpeg)

B、ADD_LIBRARY ( ${ly_lib_static} STATIC ${ly_source_files} ) 后面添加

TARGET_LINK_LIBRARIES   (${ly_lib_static} ${JPEG_LIBRARY})

C、ADD_LIBRARY ( ${ly_lib_shared} SHARED ${ly_source_files} )后面添加

TARGET_LINK_LIBRARIES   (${ly_lib_shared} ${JPEG_LIBRARY})

D、去掉

target_compile_options(${ly_lib_static} PRIVATE
  -Wno-sign-compare
  -Wno-unused-function
  -Wunused-variable
  -Wuninitialized)

如图:

4、编译libyuv

md out
cd out
cmake ..
手动打开 YUV.sln 
编译生成 yuv.lib

注:编译出来的是yuv.lib,建议直接修改为libyuv.lib和工程名称一致

六、打包库

-libyuv

    -include // 这里是libyuv的include文件夹

    -lib  // libyuv.lib jpeg.lib

    -dll //  jpeg62.dll 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/740920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

js模块化开发

◼ 到底什么是模块化、模块化开发呢?  事实上模块化开发最终的目的是将程序划分成一个个小的结构;  这个结构中编写属于自己的逻辑代码,有自己的作用域,定义变量名词时不会影响到其他的结构;  这个结构可以将自己…

SAP S4 Hana 下面ACDOCA 凭证行字段增强创建过程

网上找到这个类下面是可以新增增强的 现在需要在如下位置建立四代增强点 保存以后会出现下面的增强项 保存激活后,完成在源程序中增加了一个4代显式增强点.上面步骤只是在程序中建立了一个增强点,并没有执行什么动作,就相当于建立一个容器。如…

Python将Excel数字对应列的字母写成字典(json)

在日常的办公中,我们经常需要利用python去读写Excel类型的文件,有时候我们需要将每个数字代表的列的字母表现出来,那么我们可以利用Python实现,而且今天的代码可以根据自己的需求去任意的改变你想规定的长度 如,或者更长 a {1:…

1分钟搭建VPN服务器

1分钟搭建一个VPN服务器 VPN技术在保障网络通信安全和隐私上发挥着重要作用。IPsec VPN是其中一种常用的VPN模式。本文将介绍如何通过使用Docker来快速搭建IPsec VPN Server。 什么是IPsec VPN? IPsec即Internet Protocol Security,是一种用于保护互联…

「2024」预备研究生mem- 形式逻辑强化:逻辑的特殊文字表述方式(重点记忆)

一、形式逻辑强化:逻辑的特殊文字表述方式 二、课后题

关于torch.load报出找不到模型的错误,但路径明明正确

后来发现是因为使用 torch.save(model,save.pt) 会保存整个文件时会默认保存训练py文件的父目录,用torch.load导入文件时搜索路径必须有此父路径,否则将会提示no model named model这样的错误 解决办法是使用sys.path.apend把该父目录加入搜索路径中 …

Java开发 - 探寻Spring的秘密

前言 Spring是企业级J2EE一站式解决方案,提供了整个项目的表现层、业务层、持久层,而且,它的生态特别完善,可以和其他框架无缝对接,现在做Java的哪个项目里没有Spring的说出不去都不信。但往往我们开发者只重视项目是…

重定向:电商行业打败对手的杀手锏

重定向是一种在线营销策略,针对对产品或服务表示兴趣的潜在客户。可以追踪那些访问过您的网站、但未进行过消费的用户,再次向他们展示相关产品,激起消费欲。再营销则是可以追踪那些将商品加入网页购物车,但最后没有购买的用户&…

物流RFID设备一般在哪些场景应用?

随着现代物流行业的快速发展,传统条码技术信息量少,易脏污损毁,耐用性不高等问题很难满足物流企业多样化的需求,物流RFID设备的应用也越来越广泛。下面我们就跟大家一起来分析一下,物流RFID设备可以在哪些场景中应用。…

计算机体系结构基础知识介绍之动态调度(三)

首先回顾一下tomasulo算法, Tomasulo算法的第一个优点是分布式的冒险检测逻辑,这是通过使用预留站和公共数据总线实现的。预留站是一种存储指令和操作数的缓冲区,每个功能单元都有自己的预留站。公共数据总线是一种广播结果的方式&#xff0…

SpringBoot07:Thymeleaf模板引擎

目录 一、Thymeleaf 1、模板引擎 2、引入Thymeleaf 3、Thymeleaf分析 二、测试 1、编写一个TestController 2、编写一个测试页面welcome.html放在templates目录下 3、启动项目请求测试 三、Thymeleaf语法学习 1、修改测试请求,增加数据传输 2、要使用thy…

zabbix服务部署

文章目录 zabbix1 zabbix简介1.1 组成部件1.2 监控原理1.3 Zabbix 6.0新特性1.4 Zabbix6.0功能组件1.4.1 Zabbix Server1.4.2 数据库1.4.3 Web界面1.4.4 Zabbix Agent1.4.5 Zabbix Proxy1.4.6 Java Gateway 2 部署zabbix服务端2.1 部署Nginx2.2 安装PHP2.3 修改Nginx配置2.4 修…

Docker安装ElasticSearch7.14.0 docker安装elasticsearch7.14.0完整详细教程

Docker安装ElasticSearch7.14 docker安装elasticsearch7.14完整详细教程 Docker 上安装 ElasticSearch 7.14.0 的步骤:选择要安装的ElasticSearch 版本1、拉取 ElasticSearch 镜像2、创建并运行容器关闭容器启动容器重启容器 3、elasticsearch常用端口以及作用4、测…

耳夹式骨传导耳机测评!2023年最全耳夹骨传导耳机盘点

现在市面上的骨传导耳机品牌层出不穷,骨传导耳机好不好用,主要还是看耳机的品牌背景以及独家的音质技术调配,较大的骨传导耳机品牌在购买时售后以及使用体验上都具有一定的保障,下面就分享一些值得入手的骨传导耳机给大家吧~ 第一…

安装.net framework3.5 无法打开运行空间池,服务器管理器winRM插件可能已经损坏

解决方案: 1.以管理员权限打开命令提示符,然后运行如下命令: "reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f" 2.然后运行"winrm quickco…

玩转 TypeScript 中【class类】的定义与使用方法解读。

目录 类的概念类的继承 :类的存取器:类的静态方法与静态属性:类的修饰符:参数属性:抽象类:类的类型: 类的概念 类是用于创建对象的模板。他们用代码封装数据以处理该数据。JavaScript 中的类建立在原型上&a…

java.lang.NoSuchMethodError异常原因及解决办法

java.lang.NoSuchMethodError异常原因及解决办法 第一种简单的情况就是本类中需要调用的方法名称错误,这种情况就需要去检查方法名称是否正确,避免调用的方法和本类中的有相同的名称。 第二种情况就是jar包的问题 可能是jar包没有导入进来或者jar包导入…

HTTP第17讲——Cookie机制

Cookie的诞生背景 HTTP 是“无状态”的,这既是优点也是缺点。优点是服务器没有状态差异,可以很容易地组成集群,而缺点就是无法支持需要记录状态的事务操作。 后来发明的 Cookie 技术,给 HTTP 增加了“记忆能力”。 什么是Cookie…

图灵奖得主Geoffrey Hinton:我的五十年深度学习生涯与研究心法

本文介绍了Hinton非常坦诚地分享了自己的学术生涯,深度学习的未来和研究心得。 他从未正式上过计算机课程,本科在剑桥大学读的是生理学和物理学,期间曾转向哲学,但最终拿到的却是心理学方向的学士学位;他曾因为一度厌学…

在OK3588的Ubuntu系统上安装Firefox浏览器

文章目录 概要配置上网环境安装的具体命令 概要 因为Ubuntu系统里面没有安装浏览器,为了方便使用,提高工作效率,我们安装一下Firefox浏览器。 Firefox是一款适用于Ubuntu系统的免费和开源的Web浏览器。由Mozilla Foundation和其子公司Mozil…