Windows环境下使用Cmake ndk编译fdk-aac
一、废话
最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,下面是x264,网上说的很多都是几百年前的,我亲测完美可用
还是那句话 我能力有限,但是我希望我写的东西能够让更多的人能够接受.我也是刚刚接触.做一个记录,也希望能够对其他人有好处.
联系我可以直接评论,也可以加我QQ:2519687025
准备:1.fdk_aac的源码 git clone https://android.googlesource.com/platform/external/aac
3.需要下载cmake 直接在cmd里面就可以了,之前的FFmpeg和x264都是cygwin里面的.现在不用.需要设置cmake环境变量,加入到path里面
4.编译脚本.这个脚本自己去理解吧.我也是一知半解--脚本名称:CMakeLists.txt
# source code: git clone https://android.googlesource.com/platform/external/aac
cmake_minimum_required ( VERSION 2.8 ) if (CMAKE_SYSTEM_NAME STREQUAL Android )
if ( NOT CMAKE_SYSTEM_PROCESSOR )
set ( CMAKE_SYSTEM_PROCESSOR armeabi-v7a )
endif ()
if ( NOT CMAKE_SYSTEM_VERSION )
set ( CMAKE_SYSTEM_VERSION )
endif ()
if ( NOT NDK_TOOLCHAIN_VERSION)
set ( NDK_TOOLCHAIN_VERSION 4.8 )
endif () set ( ANDROID_NDK_ROOT $ENV{ANDROID_NDK_ROOT} ) find_path ( TOOLCHAIN_ROOT bin PATHS ${ANDROID_NDK_ROOT}/toolchains/arm-linux-androideabi-${NDK_TOOLCHAIN_VERSION}/prebuilt/* ) include ( CMakeForceCompiler ) find_program ( CMAKE_C_COMPILER arm-linux-androideabi-gcc PATHS ${TOOLCHAIN_ROOT}/bin )
find_program ( CMAKE_CXX_COMPILER arm-linux-androideabi-g++ PATHS ${TOOLCHAIN_ROOT}/bin )
find_program ( CMAKE_AR arm-linux-androideabi-ar PATHS ${TOOLCHAIN_ROOT}/bin ) cmake_force_c_compiler ( ${CMAKE_C_COMPILER} GNU )
cmake_force_cxx_compiler ( ${CMAKE_CXX_COMPILER} GNU ) set ( CMAKE_SYSROOT ${ANDROID_NDK_ROOT}/platforms/android-${CMAKE_SYSTEM_VERSION}/arch-arm CACHE PATH "" ) set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY ) endif () project ( fdk-aac ) if ( NOT INCLUDE_INSTALL_DIR )
set ( INCLUDE_INSTALL_DIR include )
endif () if ( NOT ARCHIVE_INSTALL_DIR )
set ( ARCHIVE_INSTALL_DIR lib/static )
endif () if ( NOT IS_DIRECTORY ${FDK_AAC_SOURCE_DIR} )
message ( FATAL_ERROR "FDK_AAC_SOURCE_DIR=${FDK_AAC_SOURCE_DIR} is not a dir" )
endif () if ( CMAKE_SYSTEM_NAME STREQUAL Android )
add_definitions (
--sysroot=${CMAKE_SYSROOT}
-fPIC
-march=armv7-a
-mfpu=vfpv3-d16
-DANDROID
-mhard-float
-D_NDK_MATH_NO_SOFTFP=1
-lm_hard )
endif () add_definitions (
-fno-rtti
-fno-exceptions ) set ( SOURCE_FILES ) foreach ( subdir
libAACdec libAACenc libFDK
libMpegTPDec libMpegTPEnc
libPCMutils
libSBRdec libSBRenc
libSYS ) set ( __inc_dir ${FDK_AAC_SOURCE_DIR}/${subdir}/include ) include_directories ( ${__inc_dir} )
install ( DIRECTORY ${__inc_dir}/ DESTINATION ${INCLUDE_INSTALL_DIR}/fdk-aac/ ) file ( GLOB __src_files
${FDK_AAC_SOURCE_DIR}/${subdir}/src/*.cpp
${FDK_AAC_SOURCE_DIR}/${subdir}/src/*.h )
list ( APPEND SOURCE_FILES ${__src_files} )
endforeach () add_library ( fdk-aac STATIC
${SOURCE_FILES} ) install ( TARGETS fdk-aac
ARCHIVE DESTINATION ${ARCHIVE_INSTALL_DIR} )
三、编译
这个的编译相对简单 ,只要下载cmake就可以了.直接cmake就可以了.
1.定位到编译目录
.执行cmake 命令
cmake -G "MinGW Makefiles" -DCMAKE_SYSTEM_NAME=Andr
oid -DFDK_AAC_SOURCE_DIR="E:/soft/source/fdk_aac/aac" E:\qupai_code_eclipse\code
\ThirdParty\Build\fdk-aac -DCMAKE_MAKE_PROGRAM=E:\android-ndk-r9c\prebuilt\windo
ws\bin\make.exe
3.cmake --bulid . -- -j8
注意:DFDK_AAC_SOURCE_DIR="你的fdk_aac的源码地址"
E:\qupai_code_eclipse\code\ThirdParty\Build\fdk-aac ----这里是你的CMakeLists.txt地址
DCMAKE_MAKE_PROGRAM=NDK的make地址
Windows环境下使用Cmake ndk编译fdk-aac的更多相关文章
- Windows环境下的RTKPlot_Qt版本编译时遇到的问题和解决方法
在使用了 RTKLIB开源包自带的 rtkplot.exe后,知道了它所具有的功能,就想着如何模仿它做出一个 demo.一开始看的是之前下载的 2.4.2版本的 RTKLIB,里面是使用 Delphi ...
- Windows环境下使用cygwin ndk_r9c编译FFmpeg
一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,一步步来.先来讲一下FFmpeg,网上说的很多都是几百年前的,我亲测完美可用 联系我可以直接评论,也可以加我Q ...
- Windows环境下使用cygwin ndk_r9c编译x264
一.废话 最近学习,第一步就是编译.我们需要编译FFmpag,x264,fdk_aac,下面是x264,网上说的很多都是几百年前的,我亲测完美可用 还是那句话 我能力有限,但是我希望我写的东西能够让 ...
- Linux环境下使用Android NDK编译c/c++生成可执行文件
1.安装Android NDK至Linux(Lubuntu 16) 从网上下载 android-ndk-r13b-linux-x86_64.zip,本人将其解压至/home/guanglun/work ...
- Windows环境下使用VS2005编译OpenSSL
如何Windows环境下,使用VS2005编译OpenSSL,虽然这个问题在Baidu.Google上一堆,但安装中还是遇到些问题,在这里 记录下来希望能帮助大家不要在走弯路.注:我是在WinXP S ...
- 【转】Windows环境下Android NDK环境搭建
原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员 ...
- Windows环境下Android NDK环境搭建
前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员来讲,基本够用了,由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设 ...
- Openstack 二次开发之:在windows 环境下编译Openstack-java-sdk
在windows环境下使用maven对openstack-java-sdk进行编译 编译源文件 下载源代码 git clonehttps://github.com/woorea/openstack-j ...
- windows环境下protobuf的java操作{编译,序列化,反序列化}
google protocol buffer的使用和原理 概况: Protocol Buffers(也就是protobuf)是谷歌的语言中立的.平台中立的.可扩展的用于序列化结构化的数据: windo ...
随机推荐
- Vijos_1792_摆花_(动态规划,多重集组合数)
描述 https://vijos.org/p/1792 共n种花,第i种花有a[i]个,要摆m个,同一种花连续且花按照序号从小到大排,问共有多少种摆花方案. 描述 小明的花店新开张,为了吸引顾客, ...
- JBPM4.4部署到tomcat6异常解决办法
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.ser ...
- GeoServer地图开发解决方案
转自:http://www.cnblogs.com/beniao/archive/2011/01/08/1930822.html GeoServer 是 OpenGIS Web 服务器规范的 J2EE ...
- POJ --- 1164 放苹果
放苹果 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24947 Accepted: 15887 Description ...
- Boost库
2014-08-31 Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成 ...
- 洛谷P1407 工资
洛谷P1407 工资 本题地址:http://www.luogu.org/problem/show?pid=1407 题目描述 有一家世界级大企业,他们经过调查,发现了一个奇特的现象,竟然在自己的公司 ...
- codeforces 358D
题目链接:http://codeforces.com/contest/358/problem/D #include<cstdio> #include<iostream> #in ...
- wireshark不仅仅是用来抓包分析网络的;
凡是不找借口,不排弄推诿理由,提高自我,尽量人事; AIX smit(system manager interface tool); formerly alike; derivatives dpkg ...
- 软件缺陷分析方法:ODC
资料 Orthogonal Defect Classification:简要描述. ODC-5-2.pdf :详细说明了ODC对于缺陷属性分类的描述,以及具体应该怎么划分. ODC-5-2-Exten ...
- KindEditor编辑器(初始化参数)
width 编辑器的宽度,可以设置px或%,比textarea输入框样式表宽度优先度高. 数据类型: String 默认值: textarea输入框的宽度 示例: K.create('#id', { ...