VLC编译错误难解 6 编译VLC3.0.0版本

         上面5中编译成功的是VLC4.0.0-dev,今天编译了下3.0.0,几乎和4.0一样在make fetch后执行make,一堆包含头文件的错误,这里面基本的解决思路就是先查找缺失的头文件在不在vlc的源码目录内,如果不在就找/usr/include目录,搜索到头文件后将头文件复制到报错的c文件文件夹内。

1、一个奇怪的现象,通过 export C_INCLUDE_PATH=/usr/include,后执行make会有一堆莫名其妙的错误,然后再执行export C_INCLUDE_PATH=后再make,原来的头文件找不到的错误也消失了,不用再拷贝头文件了,这里面确实很奇怪。

注释:应该是使用export C_INCLUDE_PATH=/usr/include后刚才的.c文件已经编译通过了,再改环境变量时export C_INCLUDE_PATH=后莫名其妙的问题也会消失,这个还挺有用的!!

2、有一些头文件不在/usr/include内的可以通过export C_INCLUDE_PATH="path"来指定编译器要查找的头文件路径,path就是你的文件所在路径。

终极解决办法

1、若在make fetch后 执行 make 缺少头文件,在/usr/include内搜索该文件,一般都是能够找的到的,将该头文件或者包含该头文件的整个目录都复制到 (你的VLC源码根目录)/contrib/win32/i686-w64-mingw32/include内

如下图缺少<cairo/cairo.h>

VLC编译错误难解 6 编译VLC3.0.0版本

2、就在/usr/include内搜索该文件,很明显该头文件就是下图被选中的文件,将整个cairo文件夹复制到上述所述的目录内即可

VLC编译错误难解 6 编译VLC3.0.0版本

3、复制后的目录

VLC编译错误难解 6 编译VLC3.0.0版本

4、再编译make 就能成功了!!!

 

现在编译VLC3.0版本时遇到的问题

1、make fetch时会有很多以前链接失效了,如下图

VLC编译错误难解 6 编译VLC3.0.0版本

2、你需要从google上找到该文件的下载地址,一般都能够找到,只是文件被迁移了。找到该文件后,进入VLC源码根目录/contrib/src内找到该文件下载的配置文件夹,如下图:

VLC编译错误难解 6 编译VLC3.0.0版本

3、进入文件夹,找到rules.mak,打开,修改对应的地址,如下图:

VLC编译错误难解 6 编译VLC3.0.0版本

4、再次执行make fetch就不会出错了。