windows autoconf、automake编译 fdk-aac2.0.2

windows autoconf、automake编译 fdk-aac2.0.2,第1张

官方文档automake


一、背景

简单说,就是,1991年cmake的作者为了避免写20多个不同系统的不同cmake,创建了兼容各种系统的autoconf、automake,这两个货能直接把c、c++文件等资源文件最终生成makefile,要是想具体了解automake的原理以及步骤,请自己查看automake官方文档(老外文档写的真好),github上好多源码都是直接生成好的configue,我们平时下载下来可直接用,./configure--->make就可以拿到相应的库了,但是最新的fdk-aac2.0.2稍微不大一样,可以分2种方式编译:

a、第一种方式见文章: windows cmake-gui 编译fdk-aac2.0.2_打野哥哥,救命的博客-CSDN博客

      上述文章是通过CMakeLists.txt用cmake-gui 生成的vs相关的项目文件

b、第二种方式见本文:之所以要用automake,是因为fdk-aac2.0.2只给了automake生成makefile的部分文件,而没有直接给出可用的configue,所以需要根据automake官方文档手动生成一下

注意:fdk-aac其他版本,比如2.0.1,里面包含了Makefile.vc,这种直接用微软的nmake即可,网上一大把,自己去搜



二、思路

msys2可以简单理解成一个windows上模拟linux环境的平台,里面可以装inux下面像gcc、cmake这种库,然后在windows上通过msys2把编译器gcc切换成vs的cl.exe,然后结合上述生成的configue搞出windows支持的msvc的库,至于msvc与mingw的区别,自己去谷歌吧


三、准备

1、 MSYS2

        a、官网下载MSYS2,且安装成功

        b、在msys2中用pacman命令安装如下软件:

                       pacman -S nasm

                       pacman -S yasm

                       pacman -S make cmake

                       pacman -S autotools

        注意:按照Autotools - MSYS2官网介绍安装autotools后就包含了autoconf、automake等自动工具

2、 修改msys2安装目录下的启动脚本msys2_shell.cmd,如下图所示

3、安装vs2022企业版,其他vs版本自己尝试

4、打开vs2022命令行工具,我编译的是64位的,32位的自己用x86工具,如下图:


四、编译

1、在vs的命令行工具里面,打开msys2目录下的msys2_shell.cmd,进入msys2的命令行,这样msys2就可以继承vs的环境变量了,就可以用vs的编译器cl.exe与链接器link.exe,具体见下图(这个 *** 作在ffmpeg的windows编译官方文档里有简单提到过)

 2、开始用auto工具生成项目configue,下面的一堆命令就都是在msys2的命令行里面了

注意:如果遇到Error: ‘required file `./ltmain.sh' not found’错误,需要执行libtoolize,在执行automake那步,这个错误说明在automake官方文档的8.3.9.1

3、cl.exe+configure生成msvc库

        a、上述2中生成的configure其实就是一个bash脚本,自己打开脚本或者用命令行./configure -h查看下脚本支持的命令,命令较多,我只截图一部分:         

 b、执行configure--->make二部曲生成64位msvc库,2个图如下:

c、生成的库默认放到fdk-aac目录里面的.libs 文件夹下,如下图:

注意:上述b中make后,如果执行make install命令,对应的.h、.lib、dll会拷贝到msys2目录下相应的文件夹下面,因为msys2是模拟了linux的环境,linux一切皆文件,自然有默认的头文件与库存贮路径,以上文章有任何纰漏,请指出,我在改~

        

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/579508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)

保存