自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卖猪肉的痴汉

多练,多记!

  • 博客(93)
  • 收藏
  • 关注

原创 3.3 批量拷贝依赖到指定目录

摘要 本文介绍了两种自动拷贝程序依赖库的方法。首先使用Dependency Walker工具分析程序依赖,将依赖路径保存到dlls.txt文件中。然后提供了两种实现方案:1) PowerShell脚本(copy_dll.ps1),支持将DLL文件复制到指定目录并自动转换为小写文件名,包含详细的错误处理和结果统计;2) Python脚本(copy_dll.py),同样实现DLL文件复制功能。两种方法都采用相同的目录结构,包含脚本文件、目标目录和依赖列表文件,适用于Windows环境下的程序依赖管理需求。其中P

2025-06-30 18:07:17 376

原创 将本地仓库推送到GitHub

本文介绍了Git与GitHub关联配置的完整流程:1) 全局配置用户名和邮箱;2) 生成并绑定SSH密钥(推荐Ed25519算法),包括公钥添加至GitHub账户;3) 测试SSH连接验证配置;4) 仓库操作指南,含克隆/切换协议、代码推送及分支重命名步骤(如将master改为main)。重点说明SSH密钥的生成方法、协议选择建议以及常用Git命令,帮助开发者实现安全高效的代码管理。

2025-06-30 15:14:02 974

原创 5.3 VSCode使用FFmpeg库

本文介绍了在Windows系统下使用CMake集成FFmpeg的两种方法:Visual Studio(VS)+CMake和MSYS2+CMake。对于VS+CMake方案,详细展示了动态库和静态库两种配置方式,包括项目目录结构、CMakeLists.txt文件编写要点以及编译命令。MSYS2+CMake方案则采用类似结构,但针对MSYS2环境进行了适配。两种方法均提供了完整的FFmpeg库链接配置,并包含示例代码来验证编解码器集成状态。文中还特别强调了输出目录设置、DLL文件自动复制等实用技巧,为Windo

2025-06-22 00:10:37 320

原创 5.2 Qt Creator 使用FFmpeg库

本文介绍了一个Windows平台下使用FFmpeg库的Qt项目配置方法。项目包含3rdparty目录存放FFmpeg编译库(MSVC和MinGW两种版本),通过demo3.pro文件自动检测系统架构和编译器类型,配置相应的头文件和库路径,并设置DLL文件的自动部署机制。main.c文件展示了FFmpeg各组件版本信息的测试代码。最后说明了如何在Qt Creator中配置构建后自动执行make install命令,将所需的FFmpeg动态库复制到输出目录。整个方案实现了跨编译环境的FFmpeg集成和自动化部署

2025-06-21 23:53:44 469 1

原创 5.1 Ubuntu Clion 调试FFmpeg 4.4.1 代码

摘要:本文介绍使用Clion调试FFmpeg的方法。首先安装SDL2等依赖库,通过configure配置项目生成Makefile(注意debug模式需禁用优化)。在Clion中导入项目,选择all目标编译。调试时分别设置ffmpeg和ffplay的参数:ffmpeg调试需指定输入输出文件,ffplay需设置显示参数。文章还介绍了Watch Point调试技巧,以及解决Clion无法识别Makefile的替代方案(手动添加Makefile Application配置)。调试过程中重点关注fftools目录下的

2025-06-21 18:20:47 892

原创 4.1 FFmpeg编译选项配置

FFmpeg编译选项配置指南 本文档总结了不同场景下FFmpeg编译的常用配置选项,主要包括: 源码调试场景:启用debug模式(--enable-debug=3),禁用优化(--disable-optimizations)和strip(--disable-stripping)以确保调试顺畅。 编解码器支持场景:提供了两种配置方案,分别支持x264/fdk-aac/mp4等基本功能,以及x264/x265/fdk-aac/lame/flv等扩展功能组合。 参数讲解:详细介绍了组件禁用与启用的原则和方法,强调

2025-06-21 17:04:29 977

原创 3.1 Android NDK交叉编译FFmpeg

本文介绍了在Ubuntu 20.04环境下使用NDK编译多个FFmpeg版本(4.4.6、5.1.6、6.1.2、7.0.2)的完整流程。项目包含自动下载脚本(NDK、FFmpeg源码及依赖项x264/fdk-aac)和编译控制脚本,支持分架构(arm64-v8a/armeabi-v7a)输出。目录结构清晰,包含源码目录(deps/ffmpeg)、NDK工具链和编译输出目录(output)。使用build_android.sh脚本可一键编译全部组件或单独编译指定库,通过代理设置加速下载。编译结果按版本和架构

2025-06-21 14:54:40 1119

原创 2.4 Windows Conan编译FFmpeg 4.4.1

文章摘要: 本文介绍了使用Conan编译FFmpeg的完整流程。首先配置Conan的profile文件(如vs2019),明确编译器、架构等参数;随后通过conanfile.txt定义FFmpeg版本(4.4.3)及模块选项(如启用avcodec、swscale等),并配置动态库与编码器支持(如libx264、libfdk_aac)。文中对比了Conan选项与FFmpeg原生configure参数的对应关系,涵盖库模块、视频/音频编码器等分类。通过CMakeDeps和CMakeToolchain生成器实现项

2025-06-16 18:26:41 671

原创 2.3 Windows Vcpkg+MSVC编译FFmpeg 4.4.1

摘要 本文介绍了使用vcpkg安装ffmpeg 4.4.1的方法。主要内容包括: 查看vcpkg中ffmpeg版本的方法 解析vcpkg.json文件的配置项,如builtin-baseline、dependencies和overrides 列举ffmpeg常用feature的分类表,包括视频/音频编码和其他功能 提供编译安装库的代理设置和VS版本指定方法 文章详细说明了如何通过vcpkg管理ffmpeg版本及其依赖,并给出了配置示例和实用技巧。

2025-06-16 15:16:25 655

原创 2.2 Windows MSYS2编译FFmpeg 4.4.1

本文介绍了在MSYS2环境下安装FFmpeg编译工具和依赖库的方法。第一部分列出基础编译工具链,包括gcc、nasm/yasm汇编器、pkgconf等。第二部分详细分类整理了视频/音频编码库(如x264、x265、fdk-aac等)和其他功能库(如字幕、字体、流媒体支持),并对应给出pacman安装命令和FFmpeg配置选项。特别说明cmake需系统安装而非pacman版本。该指南为在Windows平台通过MSYS2编译功能完整的FFmpeg提供了完整的依赖解决方案。

2025-06-16 01:58:39 671

原创 2.1 Windows VS2019编译FFmpeg 4.4.1

在 Visual Studio 2019 中编译 x264、x265、fdk-aac、lame 和 FFmpeg 需要在 Windows 环境下搭建一个类 Linux 的编译环境,因为这些库主要在 Linux 下开发,源码与 MSVC++ 不完全兼容,基于 MSYS2 和 MinGW 的工具链,并结合 Visual Studio 2019 的编译器(cl.exe)。要安装的组件:下载地址:msys2-installer启动MSYS2:更换国内源:参考地址:https://mirrors.ustc.edu

2025-06-15 22:59:01 935

原创 1.1 Linux 编译FFmpeg 4.4.1

本文介绍了在Ubuntu系统上编译安装FFmpeg 4.4.1的完整流程。首先需要安装基础编译工具链,包括autoconf、automake、gcc等。接着详细列出FFmpeg所需依赖库的分类表格,涵盖视频编码(x264、x265等)、音频编码(fdk-aac、lame等)及其他功能库。文章提供了两种安装方式:通过apt快速安装依赖库,或手动编译源码安装。并以最小化配置为例,给出具体编译参数和命令,生成包含ffmpeg、ffprobe等可执行文件的完整目录结构。整个过程注重优化编译配置和性能,适用于定制化F

2025-06-14 18:48:32 927

原创 2.7 Conan简单使用

Conan 2.0是一个开源的C/C++包管理器,支持跨平台管理依赖。它可以通过pip安装并使用虚拟环境管理,也可以直接下载安装程序。Conan支持多种系统、架构、构建工具和编译器类型,通过conanfile.txt配置项目依赖,结合CMake构建项目。安装依赖后,Conan会生成工具链文件,简化了项目配置过程。常用命令包括搜索包、生成配置文件等,为C/C++项目提供了便捷的依赖管理方案。

2025-06-14 14:03:26 965

原创 2.6 MSYS2 简单使用

MSYS2是一款Windows下的开发工具链,提供原生Windows应用编译环境与类Unix开发体验。集成了MinGW-w64工具链支持32/64位应用开发,包含Pacman包管理系统(3300+预编译包)和多个子系统(MSYS2、MINGW32/64、UCRT64、CLANG64)。安装后可通过更换国内镜像源加速,常用Pacman命令包括软件安装(-S)、系统升级(-Syu)、清理缓存(-Sc)等。需手动安装MinGW64工具链(mingw-w64-x86_64-toolchain)和基础开发工具(bas

2025-06-11 11:12:05 1015

原创 4.2 C/C++开发环境:VSCode+CMake+MSYS2

本文介绍了如何在VSCode中使用PowerShell终端配置MSYS2环境并构建CMake项目。主要内容包括:1) 通过init_project.ps1初始化项目目录结构;2) 使用set_env.ps1脚本配置MSYS2环境变量,使其能在PowerShell中使用;3) 提供手动和自动两种编译方式(通过build.ps1脚本)。文中重点说明了MSYS2的路径配置、子系统选择和环境变量继承设置,并给出了CMake项目的基本配置示例。该方案适用于未设置环境变量的MSYS2解压安装情况。

2025-06-10 00:55:02 478

原创 4.1 C/C++开发环境:VSCode+CMake+VS2019

本文介绍了如何在VSCode中使用CMake插件配置VS编译器并构建C++项目。首先详细说明了软件安装步骤,包括VS、VSCode和CMake的下载与配置。然后通过示例项目演示了从创建项目文件到编译的全过程,重点讲解了CMakeLists.txt的编写和VS编译器的选择配置。最后提供了两种构建方式:直接使用预设配置或重新生成配置后进行构建。文中还解释了CMake关键参数的含义,为开发者提供了从环境搭建到项目构建的完整指导。

2025-06-09 17:47:24 1000

原创 3.2 判断.lib和.a是静态库 还是动态库的导入库

摘要: 区分静态库(.lib)与动态库导入库可通过三种方法:1) lib.exe工具(VS自带):静态库输出.obj文件列表,导入库显示.dll文件名;2) 文件解压(如7-Zip):静态库含大量.obj文件,导入库仅含符号表或.dll引用;3) 环境观察:静态库文件较大且独立,导入库较小且需配套.dll。推荐优先使用lib.exe官方工具验证。

2025-06-09 16:47:03 259

原创 3.1 查看动态库或程序的依赖库

本文介绍了分析软件依赖库的原理和工具。Windows通过PE文件导入表记录DLL依赖,Linux则通过ELF文件的.dynamic段记录.so依赖。推荐Windows使用Dependencies工具可视化分析依赖树,或dumpbin快速列出依赖;Linux常用ldd查看运行时依赖,objdump安全解析ELF结构。文章还对比了进程级分析工具如Process Explorer和pmap。最后总结强调:Windows依赖问题宜使用Dependencies调试,Linux推荐ldd结合objdump验证,缺失库需

2025-06-09 15:33:41 986

原创 2.5 MinGW简单使用

MinGW是一个Windows平台的轻量级GNU开发工具集,允许使用GCC编译器构建原生Windows应用。主要组件包括GCC编译器、Binutils工具链、MinGW运行时库等,支持32/64位架构,提供POSIX/win32线程模型和不同异常处理机制。MSYS2则提供一个类Unix开发环境,集成MinGW-w64工具链和Unix工具,支持原生Windows应用开发。安装时需注意选择适合的架构、线程模型等参数。MinGW编译方式与Linux下gcc类似,可编译程序和库。MSYS2建议不加入环境变量以避免冲

2025-06-09 13:41:49 894

原创 2.4 vcpkg 使用

Vcpkg包管理工具使用指南 本文介绍了Vcpkg C/C++包管理工具的基本使用和进阶操作。主要内容包括: 安装配置:通过PowerShell安装Vcpkg,设置代理环境变量,编译生成vcpkg.exe 基本命令:搜索、安装、列出、导出和卸载库文件的操作方法 进阶使用: 安装指定类型的库文件(动态/静态库、Debug/Release版本) 导出版本库的多种格式(7z、zip、raw等) 通过vcpkg.json文件管理特定版本库的安装 该指南提供了详细的命令行示例和配置说明,适合开发人员快速上手Vcpkg

2025-06-07 17:20:37 1033

原创 2.3 VS2019 简单使用

本文介绍了VS2019开发环境的使用指南,包括项目结构解析、常用快捷键、添加源文件和第三方库的方法。重点讲解了静态库和动态库的编译过程,涉及项目类型修改、导出函数配置等关键步骤。还提供了VS与CMake结合的实践指导,列出不同VS版本的CMake生成器名称和架构选项,并给出指定生成器的命令行示例。全文通过图文并茂的方式,为开发者提供了清晰的操作指引,涵盖从基础配置到高级编译的实用技巧。

2025-06-07 10:45:12 814

原创 2.2 MSVC 简单使用

MSVC工具链是VS2019的核心开发组件,包含编译器(cl.exe)、链接器(link.exe)、调试工具和包管理等功能。通过命令行可编译C程序,先由cl.exe生成.obj文件,再用link.exe链接为.exe或.dll。静态库通过lib.exe打包.obj文件,动态库则需指定导出函数或使用DEF文件。MSVC支持多种C运行时库选项(/MT静态、/MD动态),不同的库命名规范需注意区分静态库和动态库导入库。整个编译流程与Linux的gcc类似,但Windows使用COFF/PE文件格式和"/

2025-06-07 00:50:28 837

原创 2.1 Windows编译环境介绍

Windows平台四大编译工具对比:MSVC是原生Windows编译套件;Cygwin通过cygwin1.dll模拟POSIX层,适合移植Linux软件;MinGW提供GCC移植但不依赖POSIX层;MSYS2结合MinGW和Cygwin优势。它们都能生成Windows程序,但Cygwin支持更多Linux特性。注意不同工具间的ABI兼容性问题,避免混用编译器导致链接错误。其中MinGW和MSVC生成原生Windows程序,Cygwin依赖模拟层,MSYS2则兼具两者特点。

2025-06-06 21:03:59 371

原创 1.4 编译库:静态库、动态库

本文介绍了Linux下静态库和动态库的编译、封装与使用方法。主要内容包括:静态库的编译流程(将.o文件打包成.a文件)、封装静态库(解压后重新打包);动态库的编译(生成位置无关代码)、显式调用(避免符号冲突)、以及将静态库封装为动态库的方法。此外,还讲解了如何混合使用静态库和动态库(通过-Wl参数指定链接方式),并强调了避免同一库同时静态和动态链接以防止冲突。文章提供了详细的命令行操作示例和注意事项,适合Linux开发者参考学习库的管理与使用。

2025-06-06 20:52:53 823

原创 1.3 编译程序:单个C文件和多个C文件

本文介绍了C程序的编译过程,分为单个文件和多文件两种情况。在单个文件编译中,演示了从hello.c源文件到可执行文件的完整过程,包括编译阶段(生成目标文件.o)和链接阶段(生成可执行文件)。重点说明了gcc命令参数的含义和目标文件的特点。在多文件编译案例中,展示了如何处理包含多个相互调用模块的程序,强调编译器在编译阶段不需要知道依赖函数的具体实现,只需在链接阶段将所有对象文件合并成最终可执行程序。文章通过具体命令和示意图,清晰地呈现了C程序的编译链接流程。

2025-06-06 17:25:17 471

原创 1.2 编译基础知识

I<路径>:指定头文件搜索的目录,优先级高于系统默认路径-isystem <路径>:指定系统头文件路径,优先级低于 -I 但高于标准路径环境变量:某些编译器会参考环境变量CPATH或(C 程序)或(C++ 程序)来查找头文件。-L<路径>:在链接时指定库文件的路径,优先级高于系统默认路径环境变量:链接器会参考环境变量指定的路径。使用-l<库名>指定要链接的库,链接器会自动在搜索路径中查找lib<库名>.a或lib<库名>.so-lm表示链接libm.so或libm.a(数学库)。

2025-06-06 16:10:36 408

原创 Git 切换到旧提交,同时保证当前修改不丢失

在 Git 中,可以通过以下几种方式切换到之前的提交,同时保留当前的修改。

2025-06-06 13:22:28 505

原创 1.1 安装编译环境

(GNU C++ 编译器)内核/驱动开发(需头文件)(GNU C 编译器)(C 标准库头文件)

2025-05-05 23:23:36 308

原创 查看Ubuntu版本

或(清晰且完整)。• 其他命令提供辅助信息(如内核版本、主机名等)。• 对于 LTS 版本,输出中会标注LTS(长期支持版本)。

2025-05-05 23:03:06 369

原创 C++智能指针unique_ptr

unique_ptr是现代 C++ 中管理动态内存的利器,它通过独占所有权和自动释放机制,简化了资源管理,同时保持高效和安全。无论是实现工厂模式、管理容器中的对象,还是处理动态数组,unique_ptr都能胜任。掌握它的核心操作(如releaseresetswap)和注意事项(如std::move的使用),能让您在编写代码时更加得心应手。

2025-03-08 10:09:24 1269

原创 C++智能指针weak_ptr

weak_ptr是一种“弱引用”智能指针,它不会增加所管理对象的引用计数。它的主要作用是用来观察或访问由shared_ptr管理的资源,而不拥有该资源的所有权。由于不拥有所有权,weak_ptr指向的对象可能在某些情况下已经被销毁,因此在使用时需要特别小心。用途weak_ptr主要用于观察资源或打破shared_ptr的循环引用。关键方法lock()获取shared_ptrexpired()检查有效性。典型场景:对象间存在潜在循环引用(如链表、树结构)时。

2025-03-07 18:58:05 1354

原创 C++智能指针shared_ptr

shared_ptr是C++标准库(<memory>头文件)中的一种智能指针,用于管理动态分配的内存。它通过引用计数机制,跟踪有多少个shared_ptr实例共享同一块内存。当最后一个shared_ptr被销毁或重置时,引用计数变为0,内存自动释放。这种“共享所有权”的特性使其非常适合多人共用资源的场景。优先使用:效率高且异常安全。避免重复使用裸指针:通过复制创建新实例。处理this时使用:确保计数一致。防范循环引用:结合weak_ptr使用。shared_ptr。

2025-03-06 20:22:14 1228

原创 RAII编程手法

RAII的核心思想是将资源的获取与对象的构造绑定,将资源的释放与对象的析构绑定,从而确保资源在使用完毕后能够被正确释放,即使发生异常也能保证资源不被遗漏。以下是对RAII的详细介绍:RAII的核心理念是:资源的生命周期与对象的生命周期绑定。

2025-03-06 16:55:36 659

原创 Git 代码回滚

【代码】Git 代码回滚。

2024-10-27 18:15:50 1090 1

原创 Git的.gitignore文件

gitignore文件只是ignore没有被。的文件,已被追踪的文件,要先。

2024-10-27 16:30:33 386

原创 Notepad++窗口置顶

2021-04-03 10:53:49 2225

原创 Git分支管理

指定分支git clone -b 分支名 仓库地址例:比如拉取nacos 指定1.1.4git clone -b 1.1.4 https://github.com/alibaba/nacos.git

2021-04-03 10:44:31 360

原创 Git设置终端代理

设置代理git config --global http.proxy http://127.0.0.1:1087git config --global https.proxy https://127.0.0.1:1087取消代理git config --global --unset http.proxygit config --global --unset https.proxy

2021-04-03 10:41:08 613

转载 Notepad++找回缓存的内容

场景:在使用Notepad++的时候,有一个非常方便的自动保存功能,也就是你在新建一个文档后,输入你的内容,在你没有手动保存前,Notepad++会帮你保存当前内容。当你没有保存就退出Notepad++,下次进来Notepad++会自动把你上次编辑的内容显示出来,以便你继续编辑。除非你手动关掉当前页面,这样Notepad++就会删除掉自动保存的内容。(低版本的Notepad++可能没有这个功能...

2020-04-15 00:06:40 785 1

原创 导出MySQL表结构到Excel(含备注)

一、查询表结构SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 备注 FROM INFORMATION_SCHEMA.COLUMNS...

2020-04-11 21:28:09 2357 1

ffmpeg3.2.2

ffmpeg3.2.2编译项目【fdk-aac、x264】

2025-06-21

NDK编译ffmpeg脚本

1.自动下载NDK21和NDK24,FFmpeg(4、5、6、7)和fdk-aac、x264 2.编译fdk-aac、x264、ffmpeg

2025-06-20

ffmpeg-4.4.1源码

目录结构 ./ ├── fdk-aac-2.0.1 ├── ffmpeg-4.4.1 ├── lame-3.100 ├── x264 └── x265_git

2025-06-15

ffmpeg4.4.1源代码

x264.tar.gz x265_3.5.tar.gz fdk-aac-2.0.2.tar.gz lame-3.100.tar.gz ffmpeg-4.4.1.tar.xz

2025-06-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除