ffmpeg-0.11.1编译具体之libavcodec/codec_names.sh

本文详细介绍了Shell脚本的基础知识,包括执行程序、设置退出条件、变量使用、函数应用、读取输入等核心概念,并提供了实际示例。重点突出Shell脚本编程的最佳实践,适合初学者和有一定经验的开发者参考。

【有误之处请指正,勤能补拙】


1. #!/bin/sh指定该脚本的执行程序

2. set -e Every script you write should include set -e at the top. 

This tells bash that it should exit the script if any statement 

returns a non-true return value.

 For more set, find here : http://hi.baidu.com/jingxiaobing/item/4ed4471d0a4fc5fb64eabf81

3. $0:脚本名字。此变量包含地址,可以使用basename $0获得脚本名称。$1:第一个参数,以此类推。

4.[ -n "$var" ] :判断$var变量是否有值

5. $* 以一个单字符串显示所有向脚本传递的参数

6. parse_config_h ()函数,扫描定义为1的宏并打印,config.h中内容如:

#define HAVE_PPC4XX 0
#define HAVE_SSE 1

7.read var: 提示用户输入,并将输入赋值给变量

8. eval 看各方教程,或如:http://bbs.365master.com/redirect.php?tid=122331&goto=lastpost

9. parse_avcodec_h ()函数,对应于codec_names.h头文件。

10.[ ] 匹配一组字符中的任意一个 /[Ll]ove/匹配Love或love的行。同行中%%意思是从$line的右边去除,[=,]的匹配。

11.${1#0},1代表$1,0代表$0,意思是在前者中去掉字串(也就是后者)。


大体就是这样了。

`undefined reference to 'x264_levels'` 错误通常表示链接器在链接过程中找不到 `x264_levels` 这个符号的定义,可能是由于缺少库文件或者库文件链接顺序不正确导致的。以下是一些可能的解决办法: #### 1. 确认 x264 库已正确安装 要保证系统中已经正确安装了 x264 库。可以通过以下命令来安装: ```bash # 在 Ubuntu 或 Debian 系统上 sudo apt-get install libx264-dev # 在 CentOS 或 RHEL 系统上 sudo yum install libx264-devel ``` #### 2. 检查编译命令中的库链接 在编译命令里,要确保正确链接了 x264 库。例如,在使用 `gcc` 编译时,需要添加 `-lx264` 选项: ```bash gcc your_source_files.c -o your_output_file -L/path/to/libx264 -lx264 -lavcodec -lavformat -lavutil ``` 这里的 `/path/to/libx264` 是 x264 库文件所在的路径。如果库文件位于系统默认的库路径下(如 `/usr/lib` 或 `/usr/local/lib`),则不需要指定 `-L` 选项。 #### 3. 检查库文件的链接顺序 链接器在处理库文件时,链接顺序是有要求的。一般来说,被依赖的库要放在依赖它的库之后。所以,要确保 `-lx264` 选项在 `-lavcodec` 之前,因为 `libavcodec` 依赖于 `libx264`: ```bash gcc your_source_files.c -o your_output_file -lavcodec -lavformat -lavutil -L/path/to/libx264 -lx264 ``` #### 4. 检查 FFmpeg 配置 在编译 FFmpeg 时,要确保已经启用了 x264 支持。可以使用以下命令配置 FFmpeg: ```bash ./configure --enable-gpl --enable-libx264 make make install ``` #### 5. 清理并重新编译 有时候,旧的编译文件可能会导致问题。可以尝试清理旧的编译文件,然后重新编译: ```bash make clean make make install ``` ### 示例代码 假设你有一个简单的 FFmpeg 程序 `test.c`,编译命令可以这样写: ```bash gcc test.c -o test -I/path/to/ffmpeg/include -L/path/to/ffmpeg/lib -lavcodec -lavformat -lavutil -L/path/to/libx264 -lx264 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值