windows上VS编译fdk-aac

一,下载源码

        在 git clone https://github.com/mstorsjo/fdk-aac.git

        或者http://sourceforge.NET/projects/opencore-amr/files/fdk-aac/ 

二,在项目文件目录下建一个CMakeLists.txt内容如下

# source code: git clone https://android.googlesource.com/platform/external/aac  
cmake_minimum_required ( VERSION 2.8 )  
  
set ( FDK_AAC_SOURCE_DIR D:/uerscode/fdk-aac/fdk-aac-0.1.6 )  


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      8 )  
    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} )  


这里需要注意的是:将第4行 的路径设为你自己的源代码路径

三 在终端 进入改项目,执行cmake .

四、cmake 成功后会生成一个.sln文件,用VS打开,构建(生成即可)


若有疑问,欢迎加扣:425825579


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值