使用cygwin在windows上编译ffmpeg的问题
我最近在
Windows上编译ffmpeg时遇到了很多麻烦.我目前正在使用cgywin终端来运行代码.我试过在网上关注许多最受欢迎的教程,但我似乎无法让它工作.我目前正在使用本教程作为指南
http://www.roman10.net/how-to-build-ffmpeg-for-android/
我在哪里: 我已经创建了一个bash脚本 #!/bin/bash NDK=C:/Users/jrblain/Development/adt-bundle-windows-x86_64-20130514/android-ndk-r9 PLATFORM=$NDK/platforms/android-8/arch-arm/ PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64 function build_one { ./configure --target-os=linux --prefix=$PREFIX --enable-cross-compile --extra-libs="-lgcc" --arch=arm --cc=$PREBUILT/bin/arm-linux-androideabi-gcc --cross-prefix=$PREBUILT/bin/arm-linux-androideabi- --nm=$PREBUILT/bin/arm-linux-androideabi-nm --sysroot=$PLATFORM --extra-cflags=" -O3 -fpic -DANDROID -DHAVE_SYS_UIO_H=1 -Dipv6mr_interface=ipv6mr_ifindex -fasm -Wno-psabi -fno-short-enums -fno-strict-aliasing -finline-limit=300 $OPTIMIZE_CFLAGS " --disable-shared --enable-static --extra-ldflags="-Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -llog" --disable-everything --enable-demuxer=mov --enable-demuxer=h264 --disable-ffplay --enable-protocol=file --enable-avformat --enable-avcodec --enable-decoder=rawvideo --enable-decoder=mjpeg --enable-decoder=h263 --enable-decoder=mpeg4 --enable-decoder=h264 --enable-parser=h264 --disable-network --enable-zlib --disable-avfilter --disable-avdevice $ADDITIONAL_CONFIGURE_FLAG make clean make -j4 install $PREBUILT/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o $PREBUILT/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -soname libffmpeg.so -shared -nostdlib -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog --warn-once --dynamic-linker=/system/bin/linker $PREBUILT/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a } #arm v6 #CPU=armv6 #OPTIMIZE_CFLAGS="-marm -march=$CPU" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG= #build_one #arm v7vfpv3 CPU=armv7-a OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=$CPU " PREFIX=./android/$CPU ADDITIONAL_CONFIGURE_FLAG= build_one #arm v7vfp #CPU=armv7-a #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU " #PREFIX=./android/$CPU-vfp #ADDITIONAL_CONFIGURE_FLAG= #build_one #arm v7n #CPU=armv7-a #OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -march=$CPU -mtune=cortex-a8" #PREFIX=./android/$CPU #ADDITIONAL_CONFIGURE_FLAG=--enable-neon #build_one #arm v6+vfp #CPU=armv6 #OPTIMIZE_CFLAGS="-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU" #PREFIX=./android/${CPU}_vfp #ADDITIONAL_CONFIGURE_FLAG= #build_one 然后我按照Does anyone find this useful? – Compiling FFMPEG on Windows with Cywin and NDK r5号文件中的步骤4-6进行了操作 4 - Open the file 'configure' in the root of the FFMPEG directory in a text editor. 5 - Comment out lines 2073,2074 and 2075. 6 - Below 2075,add the following line: TMPDIR=c:/cygwin/tmp 当我在cgywin中运行脚本时,我得到了这个结果: install prefix ./android/armv7-a source path . C compiler C:/Users/jrblain/Development/adt-bundle-windows-x86_64-20130514/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc ARCH arm (armv7-a) big-endian no runtime cpu detection yes ARMv5TE enabled yes ARMv6 enabled yes ARMv6T2 enabled yes VFP enabled yes NEON enabled yes THUMB enabled no debug symbols yes strip symbols yes optimize for size no optimizations yes static yes shared no postprocessing support no new filter support no network support no threading support pthreads safe bitstream reader yes SDL support no opencl enabled no texi2html enabled no perl enabled no pod2man enabled no makeinfo enabled no External libraries: zlib Enabled decoders: h263 mjpeg rawvideo h264 mpeg4 Enabled encoders: Enabled hwaccels: Enabled parsers: h263 h264 mpeg4video Enabled demuxers: h264 mov Enabled muxers: Enabled protocols: file Enabled filters: Enabled bsfs: Enabled indevs: Enabled outdevs: License: LGPL version 2.1 or later Creating config.mak,config.h,and doc/config.texi... libavutil/avconfig.h is unchanged WARNING: C:/Users/jrblain/Development/adt-bundle-windows-x86_64-20130514/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/arm-linux-androideabi-pkg-config not found,library detection may fail. library.mak:105: *** missing separator. Stop. library.mak:105: *** missing separator. Stop. C:UsersjrblainDevelopmentadt-bundle-windows-x86_64-20130514android-ndk-r9toolchainsarm-linux-androideabi-4.6prebuiltwindows-x86_64binarm-linux-androideabi-ld.exe:,noexecstack: unknown -z option C:UsersjrblainDevelopmentadt-bundle-windows-x86_64-20130514android-ndk-r9toolchainsarm-linux-androideabi-4.6prebuiltwindows-x86_64binarm-linux-androideabi-ld.exe: use the --help option for usage information 运行此脚本后,我在ffmpeg文件夹中获得了一些新文件.它们是.config,config(header),config.mak,config.fate. android文件夹永远不会像它应该的那样创建.考虑到它随ffmpeg下载,我也不确定library.mak错误的来源. 我不确定这一切我在哪里出错了.我觉得我使用Windows会使这个构建过程与众不同. 解决方法
第一个错误说“警告:找不到C:/…/ arm-linux-androideabi-pkg-config,库检测可能会失败.”所以我建议修复这条路.
‘C:/’不是POSIX路径. Cygwin程序能够翻译它(带警告). cd 'c:' # works. cd is a built-in command ls 'c:' # doesn't work ls 'c:/' # works (edited) 有关Cygwin如何映射POSIX- and Win32-style paths的文档. 根据我的经验,当你混合使用斜杠和反斜杠或者从Cygwin调用Windows本机命令时,你会遇到问题. Example: javac -cp "$(cygpath -pw "$CLASSPATH")" hello.java 在我看来,您应该硬编码POSIX路径,或使用以下命令: cygpath -u 'c:' # the relevant command provided by Cygwin (cd 'c:' && pwd) # a tip,useful if you want a portable syntax 但也许我错了.我想你已经检查了路径 ls 'C:/Users/jrblain/Development/adt-bundle-windows-x86_64-20130514/android-ndk-r9/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/arm-linux-androideabi-pkg-config' 我想你已经检查了mk文件的第105行(制表和linux换行符). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows-server-2008-r2 – 最佳/安全的Windows 2008 Serve
- Windows Embedded Compact 7上真正的Silverlight支持?
- azure-active-directory – 对未返回预期更改的组的图形增量
- Windows – Active Directory环境中的桌面联网打印机管理
- windows-7 – 重新启动时将Windows 7计算机重置为干净状态
- 在Windows 7 64位上安装Visual Studio 2003
- windows – 为什么这会阻止我安装MSI:系统管理员已设置策略
- Windows AD单点登录使用javascript和节点
- Windows – 从GPU获取完整的桌面屏幕截图
- windows – 如何读取GPU(显卡)温度?