1 回答

TA貢獻1966條經驗 獲得超4個贊
放到MSYS環境里配置,生成config.h文件。mingw gcc是能順利編譯通過整個項目的,并生成最新版的ffmpeg。
建立vc6工程,把相關代碼都加入到工程中。由于在vc生成的obj都在一個目錄下,所以需要修改文件名,讓其不重名。
安裝intel compiler 11編譯器,單獨提取其icl.exe及相關include目錄,替換掉vc6自帶的cl.exe, 在工程設置里加上/Qstd=c99,用于支持C99語法。
安裝intel compiler 10編譯器,單獨提取lib目錄,因為此版本調試庫的結構能完美支持vc6的調試信息。
在vc6的options里設置include/exe/lib查找目錄,指向intel編譯器。
開始修改代碼,添加C99的相關linux頭文件, 用于支持vc6, (unistd.h, stdint.h, inttypes.h, getopt.h)
添加C99和linux的相關實現代碼,ffmpeg需要用到: getopt_long, strtoll, gettimeofday, atoll, usleep等
修改windows的相關兼容代碼,GetWindowLongPtr -> GetWindowLong, GWLP_USERDATA
去除硬件加速libavcodec代碼,和依賴庫代碼。選擇所需要的模塊,修改相關的allcodec.c, alldevices.c, allfilters.c, allformats.c
加上鏈接庫,sdl.lib, winmm.lib, dxguid.lib, wsock32.lib
在os_support.c里,把<winsock2.h>移動到文件最前面。
如果是ffmpeg, 已經能順利編譯了。如果是ffplay,還需要編譯靜態sdl, 并鏈接。
- 1 回答
- 0 關注
- 810 瀏覽
添加回答
舉報