正在编写一个ffmpeg项目工程半自动转换成VC工程的工具。因为我喜欢用VS2008所以,工具只能生成VS2008的项目。
此工具基于lua脚本完成。
介绍一下大概思路,解析makefile文件,得到需要编译的所有文件列表,然后将所有的.o文件替换成.c,.asm,.S然后打开文件修改文件,在文件中加入include <config.h>.
若不加入此头文件,会导致大量宏找不到定义而失败。为了添加文件编译开关,
OBJS-$(CONFIG_AANDCT) += aandcttab.o
解析出 CONFIG_AANDCT 然后插入#if CONFIG_AANDCT #endif。这样只要修改config.h就可以起到开关的作用。
其他结构体编译出错,将在转换函数里面完成转换工作。
以前手工做一次ffmpeg移植VC工程工作,花了很长时间,因为经常因为一些错误导致要花很长的时间去查错。
完成了再把工具上传。
现在基本把解析和修改工作完成,现在就差生成VC工程。