ffwin :使用 scoop + vs2022 打造编译开源源代码系统

原由:
    Windows 下,编译开源源代码一直是个让人头疼的问题。
    也用过 vcpkg,觉得不是很理想。
    不透明,也很复杂。
    vcpkg 为了跨平台,将编译脚本改的面目全非。
    想按照自己的想法,进行查看、修改代码,都比较麻烦。

ffwin:
    一、特点:
        1、透明:不修改开源代码的编译脚本,除非编译不通过的时候,给编译脚本打 patch。此类情况较少;
        2、公开:不隐藏任何编译细节;有什么错误,会立即提示,停止编译;
        3、简单:都是使用简单的 cmd 批处理文件,来编译开源代码。自己完全可以按照示例修改,或添加编译新的开源代码库;
        4、调试:默认都是使用 cmake 编译开源代码。生成 VS2022 的编译工程文件 sln。便于打开工程进行查看、编译,调试代码;
        5、效率:使用 cmake 的 parallel 并行编译开源代码。速度超快,媲美 ninja 编译速度;
        6、类型:编译的都是 vs2022 MT 类型静态库。有了静态库,想生成动态库也就比较容易了。
        7、小巧:整个编译系统,大小仅 1M 左右。都是些 cmd 文件。

    二、使用 scoop 进行开源源代码编译工具的安装;
        1、cmake、ninja、go、cuda、rust、perl、nasm、yasm、python、git、llvm,等等编译工具,统一都由 scoop 安装管理;
        2、有的开源代码,需要 gcc 编译,所以需要用 scoop 安装 msys2。
        3、安装编译工具,命令行执行 scp x64 或者 scp x86 就可以了。按照你的需要,进行x86、x64 平台编译工具的安装;
        4、安装编译工具和下载源码,都需要科学上网。proxy.cmd 已经配置好了,需要按照你自己的系统,修改代理地址和端口;
        5、执行安装前,必须先配置好 proxy.cmd!必须先配置好 proxy.cmd!必须先配置好 proxy.cmd!重要的事情,说三遍。
        6、当然,编译源代码前,VS2022 也必须要安装好了。

    三、编译开源代码:
        1、双击 zx86.cmd / zx64.cmd 就可以了。
        2、scoop 安装的编译工具是 x64 类型,那就执行 zx64.cmd;scoop 安装的编译工具是 x86 类型,那就执行 zx86.cmd;
        3、自动编译开源代码。下载源码、编译,自动完成;
        4、ffwin,示例中,编译了将近 80 个常用开源代码库;
        5、ffwin,编译成功 ffmpeg for windows。这也是这个软件名称的来源;
        6、自己可以按照已经的示例添加编译新的开源代码库;

    四:目录说明:
        1、vs2022\source  : 存放源代码目录.
        2、vs2022\scoop   : scoop 软件目录. 编译工具也在这里. 由 scoop 统一管理.
        3、vs2022\vsbuild : vs2022 编译临时目录.
        4、vs2022\vssdk   : vs2022 sdk 安装目录.

    五:文件说明(如果你想添加自己的编译开源源代码库):
        1、src\daddr.ini               : 开源源代码的网络地址(可以添加自己的开源源代码地址);
        2、src\vcmake.cmd        :  cmake 方式编译开源源代码;
        3、src\buildgcc.cmd       :  gcc 方式编译开源源代码;
        4、src\patch                   :  存放开源源代码的 patch 文件;
        5、src\001.* --- 200.*      : 开源源代码的批处理文件(可以按照这些示例,添加自己的);


项目地址:GitCode - 全球开发者的开源社区,开源代码托管平台

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

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

相关文章

【AIGC】AI时代的数据安全:使用ChatGPT时的自查要点

博客主页: [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯法律法规背景中华人民共和国保守秘密法中华人民共和国网络安全法中华人民共和国个人信息保护法遵守法律法规的重要性 💯ChatGPT的数据使用特点ChatGPT数据安全…

学校在线学习作业批改教学管理平台的设计与实现SpringBoot+VUE

目录 一、项目背景及目标 二、技术选型 三、系统功能模块设计 四、关键技术实现 五、总结 在当今社会上,随着社会的发展和进步,对于现代的学生来说网络课程已经广泛应用于学校的每个角落,而一个课程教学管理平台对于现如今的课堂是不可缺…

资源《Arduino 扩展板4-单游戏摇杆》说明。

资源链接: Arduino 扩展板4-单游戏摇杆 1.文件明细: 2.文件内容说明 包含:AD工程、原理图、PCB。 3.内容展示 4.简述 该文件为PCB工程,采用AD做的。 该文件打板后配合Arduino使用,属于Arduino的扩展板。 该文件…

华为资源分享

紫光云文档中心提供弹性计算服务文档https://www.unicloud.com/document/product/ElasticComputeService/index.html报文格式华为报文格式资料Info-Finder(在线工具) 报文格式华为IP网络电子书华为IP网络相关电子书IP网络系列丛书 - 华为企业业务华为产品…

(C语言贪吃蛇)11.贪吃蛇方向移动和刷新界面一起实现面临的问题

目录 前言 实现效果 支持方向变换 修改默认效果 如何修改 总结 前言 我们上节实现了不需要按下右键就可以是贪吃蛇自发的向右移动,本节我们主要来解决贪吃蛇方向移动和刷新界面所遇到的问题。 实现效果 上图是我们希望实现的效果,我们可以自发地控…

【递归】13. leetcode 1457. 二叉树中的伪回文路径

1 题目描述 题目链接:二叉树中的伪回文路径 2 解答思路 第一步:挖掘出相同的子问题 (关系到具体函数头的设计) 第二步:只关心具体子问题做了什么 (关系到具体函数体怎么写,是一个宏观的过…

已解决:Could not find artifact xxx

已解决:Could not find artifact xxx 文章目录 写在前面问题描述报错原因分析 解决思路解决办法1. 检查依赖声明的正确性2. 检查远程仓库配置3. 检查网络连接4. 清理本地缓存并强制更新5. 手动上传依赖到私有仓库6. 检查本地仓库是否已被损坏 总结 写在前面 在使用…

生信初学者教程(二十三):REF+SVM筛选候选标记物

文章目录 介绍加载R包导入数据准备数据机器学习特征筛选数据分割基础模型Recursive Feature Elimination特征筛选调参最终分类模型测试集验证标记基因输出结果总结介绍 采用了REF(Recursive Feature Elimination) 结合 SVM(Support Vector Machine) 的方法,对差异基因(参…

遥感影像-语义分割数据集:Landsat8云数据集详细介绍及训练样本处理流程

原始数据集详情 简介:该云数据集包括RGB三通道的高分辨率图像,在全球不同区域的分辨率15米。这些图像采集自Lansat8的五种主要土地覆盖类型,即水、植被、湿地、城市、冰雪和贫瘠土地。 KeyValue卫星类型landsat8覆盖区域未知场景水、植被、…

Llama3.2开源:Meta发布1B和3B端侧模型、11B和90B多模态模型

最近这一两周不少互联网公司都已经开始秋招提前批面试了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友…

司法质量改善:巡回法庭的准自然实验(2000-2022年)(原始数据、计算代码、最终计算结果(Excel和Dta)和参考文献)

巡回法庭的设立背景 最高人民法院自2015年起分批次设立地方巡回法庭,以期改善司法质量,促进司法公正。这种改革措施为研究提供了一个独特的机会,可以通过准自然实验的方法来评估其效果。 2000-2022年司法质量改善:巡回法庭的准自…

ML 系列: (10)— ML 中的不同类型的学习

一、说明 我们之前将机器学习方法分为三类:监督学习、无监督学习和强化学习。机器学习方法可以分为不同的类型,我们将在下面讨论最重要的类型。 二、懒惰学习与急切学习 预先学习的工作原理是使用训练数据构建模型,然后使用此模型评估测试数据…

强大的JVM监控工具

介绍 在生产环境中,经常会遇到各种各样奇葩的性能问题,所以掌握最基本的JVM命令行监控工具还是很有必要的 名称主要作用jps查看正在运行的Java进程jstack打印线程快照jmap导出堆内存映像文件jstat查看jvm统计信息jinfo实时查看和修改jvm配置参数jhat用…

水域救援方案

水域救援是一项在复杂水域环境中进行的紧急救援行动,旨在保障人民生命财产安全、维护社会稳定,并促进相关产业的发展。以下是对水域救援的全面介绍: 一、定义与重要性 水域救援是指在人员在水域中生命受到严重威胁或重要场所、建筑物受到水…

前缀和(8)_矩阵区域和

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 前缀和(8)_矩阵区域和 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 温馨提示:…

MybatisPlus代码生成器的使用

在使用MybatisPlus以后,基础的Mapper、Service、PO代码相对固定,重复编写也比较麻烦。因此MybatisPlus官方提供了代码生成器根据数据库表结构生成PO、Mapper、Service等相关代码。只不过代码生成器同样要编码使用,也很麻烦。 这里推荐大家使…

华为Nova9开启开发人员选项

默认状态下,华为Nova9的开发人员选项是隐藏的,如下图: 要开启开发人员选项,在“设置→关于手机”中找到“HarmonyOS版本”或者“软件版本”,在版本号上连续点击,每次点击“HarmonyOS版本”和“软件版本”会…

Yocto - 使用Yocto开发嵌入式Linux系统_05 认识Bitbake工具

Meeting the BitBake Tool 通过本章,我们将开始学习 Yocto 项目引擎如何在幕后工作的旅程。正如每一段旅程一样,沟通是至关重要的,因此我们需要理解 Yocto 项目工具所使用的语言,并学习如何充分利用这些工具来实现我们的目标。 Wi…

启用vnc访问Dell 服务器IDRAC 7虚拟控制台

Dell IDRAC 7 版本太老,SSL证书过期,IDRAC的Java和本地远程虚拟机控制台访问不了,怎么办? 可以启用vnc访问IDRAC 虚拟控制台

使用pytdx获取股票行情数据

使用pytdx获取股票行情数据 先展示效果股票清单股票行情 下载通达信金融终端安装插件pytdxpython代码实现同步股票列表同步股票行情 先展示效果 股票清单 总共统计深市与沪市总计5397只股票信息。 股票行情 以下是详细的实现步骤 下载通达信金融终端 此步骤的目的是要获取…