windows系统下使用LLVM-MinGW编译OpenH264

目前网上流传的大多数博客在windows下编译OpenH264时通常建议使用MinGW+MSVC的传统组合来实现。这个组合在过去的数年期间使大量开源项目在windows下的编译变得轻松而高效,并且借助MinGW项目的跨平台能力,也使得一套代码在多种平台下编译运行成为可能。

然而随着MinGW项目组终止对该项目的官方支持,借助MinGW在windows系统下编译C/C++(以下简称C系程序)程序正在逐渐成为历史。根据MinGW项目组推荐,目前越来越多的项目开始使用Cygwin为C系程序在windows下的编译提供基础支持。OpenH264的官方文档中同样推荐使用Cygwin进行编译,经过作者实践验证,使用Cygwin编译确实简单快捷,按照文档指引,直接在build目录下执行下列命令即可(针对装好了nasm的64位系统而言)。

AutoBuildForWindows.bat Win64-Release-ASM

为了满足LLVM工具链用户编译该项目的需要,我们在此讨论和记录使用LLVM-MinGW对该项目进行编译的前置操作和编译过程。该说不说,OpenH264项目组在Makefile中大量使用linux命令,比如"sh","rm -f xxx"之类的语句,确实对windows用户造成了不小的困扰,在下文中我们会慢慢面对并逐步解决这些问题。

首先,要使用make编译一个项目,首先要将make.exe程序所在的文件夹路径加入到环境变量Path中。在"PATH TO LLVM/bin"目录下,有一个叫做"mingw32-make.exe"的可执行文件,直接将这个文件重命名为"make.exe"就好。并将 "PATH_TO_LLVM/bin","PATH_TO_LLVM/lib","PATH_TO_LLVM/lib/clang/16/bin","PATH_TO_LLVM/lib/clang/16/lib","PATH_TO_LLVM/lib/clang/16/include"加入到环境变量中,就算是安装好了LLVM-MinGW,严格来说是LLVM,MinGW和clang。

把Makefile里的OS和ARCH的赋值语句改为以下两句后,就可以直接开始编译了(make开编或者Clion拿锤子构建)。

OS = mingw_nt
ARCH = x86_64

编译时发现找不到sh,解决方法为使用git bash中自带的sh(不会有人没装git吧,不会吧不会吧)。把"PATH_TO_GIT/bin"加入到环境变量中的Path里,这个问题就解决了。

编译时出现找不到rm -f,解决方法直接找到报错的那一行,把它注释掉(当鸵鸟),问题解决。

编译时出奇奇怪怪的错误,"generate_version.sh"是重灾区,很可能是因为一些文件里使用\r\n作为换行标记,选中项目中的所有文件,把它们转成\n换行。

 至此编译通过,撒花!\^_^/ 下期再讨论如何使用,现在直接进行一个觉的睡。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
mingw-w64-builds 和 llvm-mingw 都是为 Windows 平台提供的开发工具集。 mingw-w64-builds 是一个基于 MinGW(Minimalist GNU for Windows)的项目,旨在为 Windows 提供一个开发环境,使开发者能够使用 GNU 工具链(如 GCC 编译器)来编译 Windows 下的应用程序。mingw-w64-builds 支持 32 位和 64 位的 Windows 平台,并提供了一系列开发工具和库,如 GCC 编译器、GDB 调试器、MSYS2 等。mingw-w64-builds 的目标是提供一个免费、开源、易于使用的开发环境,使开发者能够方便地在 Windows 上进行 C/C++ 开发。 llvm-mingw 则是基于 LLVM(Low Level Virtual Machine)的一个 MinGW 工具集。LLVM 是一个 modulable 编译器和工具链的项目,它提供了一组可扩展的工具,适用于多种编程语言。llvm-mingw 则是将 LLVMMinGW 结合起来,为 Windows 平台提供了一套完整的开发工具链。通过使用 llvm-mingw,开发者可以使用 LLVM 提供的优秀代码生成能力,将高级语言代码(如 C、C++编译为高效的机器码。llvm-mingw 提供了基于 LLVM编译器 Clang、调试器 lldb、库等工具,为开发者提供了一个现代化、高效的 Windows 开发环境。 mingw-w64-builds 和 llvm-mingw 都在为 Windows 平台上的开发者提供更好的开发工具支持,使他们能够更方便地进行应用程序的开发和调试。根据个人的需求和喜好,开发者可以选择适合自己的工具集来进行开发工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值