x264編譯問題合集

2021-06-12 07:53:33 字數 2126 閱讀 2890

[1] x264路徑帶空格 

錯誤: 正在執行自定義生成步驟 nasm: error: more than one input file specified type `nasm -h' for help project : error prj0019: 工具從"正在執行自定義生成步驟" 

特徵: nasm出現錯誤

原因: 你的x264資料夾的路徑中有空格,如下所示: d:/program files/x264-051226 nasm.exe把空格前的字串作為路徑,從而導致了錯誤。

[2] nasm 未安裝

錯誤: assembly "../../common/i386/predict-a.asm" 'nasm' 不是內部或外部命令,也不是可執行的程式 或批處理檔案。 error executing c:/windows/system32/cmd.exe. 

特徵: 'nasm' 不是內部或外部命令,也不是可執行的程式

[3] vc6沒有打補丁

錯誤: common.h(69) : fatal error c1600: unsupported data type 或 common.h:error c2485:'align':unrecognized externded attribute syntax error:'c' 

特徵: 資料型別不支援

原因: vc6沒有安裝sp5或vcpp 

[4] .c檔案按沒有包含到工程中

錯誤: x264.obj : error lnk2019: 無法解析的外部符號 _mk_createwriter ,該符號在函式 _open_file_mkv 中被引用 x264.obj : error lnk2019: 無法解析的外部符號 _mk_addframedata ,該符號在函式 _write_nalu_mkv 中被引用 x264.obj : error lnk2019: 無法解析的外部符號 _mk_startframe ,該符號在函式 _write_nalu_mkv 中被引用 x264.obj : error lnk2019: 無法解析的外部符號 _mk_writeheader ,該符號在函式 _write_header_mkv 中被引用 x264.obj : error lnk2019: 無法解析的外部符號 _mk_setframeflags ,該符號在函式 _set_eop_mkv 中被引用 x264.obj : error lnk2019: 無法解析的外部符號 _mk_close ,該符號在函式 _close_file_mkv 中被引用

特徵: link 錯誤,出現無法解析的外部符號。

原因: .c檔案按沒有包含到工程中。這是因為x264的win32下的vc工程沒有和x264同步更新所致,當x264加入了新的原始檔,而vc工程中沒有包含進來,就會有這樣的錯誤。像上例就是因為matroska.c沒有包含到工程中所致。 ps: .h檔案沒有包含的工程中,一般不會出錯,但建議還是包含進來,養成好習慣嘛。  

[5] 安裝了intel編譯器(未試驗)

錯誤: link : fatal error lnk1104: cannot open file "libm.lib" error executing link.exe.

特徵: libm.lib link 錯誤 

原因: 可能是安裝了intel c++ complier  

[6] .asm檔案沒有設定自定義編譯選項

錯誤: libx264.lib(cpu.obj) : error lnk2019: 無法解析的外部符號 _x264_cpu_cpuid ,該符號在函式 _x264_cpu_detect 中被引用 libx264.lib(cpu.obj) : error lnk2019: 無法解析的外部符號 _x264_cpu_cpuid_test ,該符號在函式 _x264_cpu_detect 中被引用 libx264.lib(cpu.obj) : error lnk2019: 無法解析的外部符號 _x264_emms ,該符號在函式 _x264_cpu_restore 中被引用

特徵: 容易和沒有包含.c檔案的錯誤混淆,其特徵就是出現的外部符號都是彙編檔案中的。 

原因: 每個.asm檔案都有自定義的編譯選項。

解決(針對本例):vc下,project setting,選中cpu-a.asm這個檔案,然後將其commands設定為: nasm -f win32 -dprefix -o $(intdir)/$(inputname).obj $(inputpath)

編譯安裝x264

網上也有相應的教程,之所以在這裡重申一遍,是因為我試了網上很多的編譯方法,都出現了問題,為此將此編譯安裝方法記錄下來。首先是 獲取x264 的 git clone git linux 下最簡單編譯步驟 1.切換至源 目錄 2.輸入 configure enable shared enable sta...

x264及ffmpeg交叉編譯

系統 ubuntu14.04 32位 編譯器 arm linux gcc 版本 gcc version 4.8.3 目標板 gec6818 x264交叉編譯 1.解壓原始碼包到指定目錄 tar xvf last x264.tar.bz2 c home csgec tools cd home csge...

windows下編譯x264庫

首先說一下mingw和msys是幹啥的,mingw本質上乙個開發工具鏈,它提供了針對win32應用的gnu工具鏈,以及對等於windows sdk的標頭檔案和用於mingw版本鏈結的庫檔案 so,a等,而不是msvc的dll,lib 所以如果程式只用到c c 標準庫,而不用到posix api,是可...