1. 去下载最新的源码
下载传送门:GitHub – enzo1982/mp4v2: Reviving the MP4v2 project…
本文使用的是MP4v2 v2.1.1版本的,下载的压缩包为mp4v2-master.zip
下载后解压到编译服务器上,再合适的位置解压下载的压缩包:
unzip mp4v2-master.zip
2. 配置编译
#进入解压生成的目录 cd mp4v2-master #在MP4v2项目基础文件夹中运行autoreconf -i(仅在直接从资源库构建时需要) autoreconf -i #创建一个out文件夹 用于存放生成的文件 mkdir out #之后会自动生成configure文件 然后配置一下 #我的交叉编译工具用的是arm-linux-gnueabihf 如果是其他平台需要换成对应的 ./configure \ --enable-static --host=arm-linux --disable-debug \ CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ \ --prefix=/home/username/mp4v2-master/out/ #执行编译命令 make -j16 && make install #如果没报错的话就会在out目录下生成文件
3. 编译报错
报错一:
src/rtphint.cpp:342:35: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
if (pSlash != ‘\0’) {
解决办法:
参考这篇博客解决的:mp4v2库交叉编译_fangye945a的博客-CSDN博客_mp4v2交叉编译
vim src/rtphint.cpp
#去342行 把if (pSlash != '\0') 改为
if (pSlash != NULL)
#改完之后重新执行
make -j16 && make install
报错二:
help2man: can’t get `–help’ info from ./mp4file
Try `–no-discard-stderr’ if option outputs to stderr
make: *** [doc/man/man1/mp4file.1] Error 126
make: *** Waiting for unfinished jobs….
help2man: can’t get `–help’ info from ./mp4art
Try `–no-discard-stderr’ if option outputs to stderr
make: *** [doc/man/man1/mp4art.1] Error 126
help2man: can’t get `–help’ info from ./mp4subtitle
Try `–no-discard-stderr’ if option outputs to stderr
make: *** [doc/man/man1/mp4subtitle.1] Error 126
help2man: can’t get `–help’ info from ./mp4track
Try `–no-discard-stderr’ if option outputs to stderr
make: *** [doc/man/man1/mp4track.1] Error 126
解决办法:
#打开源代码根目录的 GNUmakefile 找到 476行 或者搜索 man
#把FOUND_HELP2MAN = yes 改为 FOUND_HELP2MAN = no 就好啦
处理完这两个报错之后重新再编译就编译成功了。
本网站尊重知识产权,如有侵权,请及时联系我们删除。
本站所有原创内容仅用于学习和交流目的,未经作者和本站授权不得进行商业使用或盈利行为。
暂无评论内容