官方文档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一切皆文件,自然有默认的头文件与库存贮路径,以上文章有任何纰漏,请指出,我在改~

windows autoconf、automake编译 fdk-aac2.0.2(msvc)相关推荐

  1. windows下编译linux内核,windows上可编译Linux内核

    编译过程: 1). 解压后默认的文件夹位置是在D:\Linux-0.11,如果你不是将文件解压到该目录下, 你要修改MinGW32目录下的MinGW32.bat文件,将里面的PATH指向MinGW32 ...

  2. VLC-3.0.0(Nightly版)在Linux和Windows下的编译步骤详解

    VLC 3.0.0 Compile vlc的编译一直是个大坑,做过音视频开发的不少人想必都踩过,开篇引用官方wiki一句话: Compiling VLC is not an easy task. 本文 ...

  3. 一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay

    一步步实现windows版ijkplayer系列文章之一Windows10平台编译ffmpeg 4.0.2,生成ffplay 最近想研究下ffplay的代码,学习代码是枯燥无味的,也是抽象的,学习一个 ...

  4. windows编译openssh(automake编译)

    openssh 地址:https://gitee.com/mirrors/openssh-portable.git 使用automake编译 安装msys2,在清华镜像https://mirrors. ...

  5. windows本地编译调试hbase-3.0.0-alpha-2-SNAPSHOT源码

    windows本地编译调试hbase-3.0.0-alpha-2-SNAPSHOT源码 前言 代码下载,编译与调试 问题解决 前言 研究hbase的原因有两方面:一是自己是做大数据相关的开发工作,hb ...

  6. Windows编译Tensorflow2.2.0 C++ dll (CPU bazel)

    Windows编译Tensorflow2.2.0 C++ dll (CPU bazel) 0.建议预先下载的几个包 1.VS2019, anaconda, bazel, msys2 下载.安装.路径设 ...

  7. 乐鑫esp8266学习rtos3.0笔记:如何在 windows 用 CMake 编译 ESP8266 项目。

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于C SDK的ESP8266开发技术全系列笔记 一.N ...

  8. Windows环境下编译OpenOCD

    1.安装git for windows sdk 下载地址:Git for Windows ps:如果安装失败,需要将安装目录删除后才能重新安装. 2.打开 Git SDK 64-bit,安装编译所需环 ...

  9. CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装

    摘要 CentOS7-64bit 编译 Hadoop-2.5.0,并分布式安装 目录[-] 1.系统环境说明 2.安装前的准备工作 2.1 关闭防火墙 2.2 检查ssh安装情况,如果没有则安装ssh ...

最新文章

  1. 多键开关 android8.0,手机桌面多键开关(SwitchPro Widget )
  2. CentOS 7.0卸载自带的mariadb
  3. php 解决json_encode中文UNICODE转码问题
  4. [UVALive 3971] Assemble
  5. 电子计算机制作探测,如何自己制作一个简易的金属探测器
  6. python socketio async client_electron/socket.io client-python socketio/aiohttp server//连接失败
  7. 【HDU - 1102】Constructing Roads (最小生成树裸题模板)
  8. 去中心化交易协议 Bancor 新增支持限价订单
  9. ext 不能修改 输入框_在extjs中,如何用method改变textfield中inputType的问题
  10. 语音识别数据库成为了人工智能的核心(转发)
  11. 连接打印机错误0x000000bcb解决方法
  12. pdf转换成word转换器免费下载
  13. 形式语言与自动机理论期末复习
  14. python中def fun()是什么意思_python里的def 方法中-代表什么意思?
  15. linux终端无法输入大写字母,linux不能打大写字母
  16. 遇到svn is already locked 解决办法
  17. 透气清爽的高回弹跑鞋,跑步轻松畅快,咕咚逐日21K体验
  18. windows10 查看.theme文件
  19. gcc环境配置时遇到的问题
  20. python需要cpu还是显卡问题_买新电脑是cpu重要还是显卡重要?该怎么选择?

热门文章

  1. python连接AutoCAD;pyautocad连接错误;win32com连接AutoCAD出现问题
  2. 微型计算机原理daa,微机原理中十进制调整码DAA如何使?
  3. 猴子摘桃 Python
  4. 钉钉的收费 [钉钉深圳研发团队 denny/2016.01.06/ 59888745@qq.com]
  5. 关于,net Framework各版本兼容性问题
  6. [转]陈军:多规合一的信息平台解决方案
  7. 学习笔记:求三个数中的中间数
  8. windows离线安装node-gyp
  9. python+selenium百度文库ppt(爬虫)
  10. css3渐变透明文字遮盖解决文字只显示一部分的问题