RT Xvid-1.3.2提供的是VC6的項目,轉換到VS2010會遇到三個問題,其中兩個從網上找到答案
最先碰到的是,asm文件編譯的時候,no such input file的錯誤。找到報錯的asm文件,也就是colorspace_rgb_mmx.asm,colorspace_yuv_mmx.asm,colorspace_yuyv_mmx.asm這三個文件
右鍵屬性,打開“自定義生成工具”的屬性頁,修改命令行爲:nasm -o “$(IntDir)%(Filename).obj” -f win32 -DWINDOWS -I..\..\src\ -I”%(RootDir)%(Directory)\” “%(FullPath)”
三個修改完了,應該就會碰到LINK ERROR 1104,無法打開文件,”.\Debug\\.obj”
同樣是自定義生成工具的錯,不過這回是所有的asm文件,把他們的“輸出”項$(IntDir)\$(InputName).obj;%(Outputs)修改爲$(IntDir)%(Filename).obj;%(Outputs)
原因就是原來版本的命令行宏在2010裏似乎已經取消了,沒有發送正確的生成文件名給編譯器。編譯成功生成了obj文件,但是連接器找不到,因爲他以爲他是要找是“\.obj”。新的宏是%(Filename),修改了就好了。
第三個問題實際上也從網上找到了答案.編譯到最後會出現
1>libxvidcore.def : error LNK2001: 無法解析的外部符號 xvid_plugin_psnrhvsm
查看plugin,發現居然就木有plugin_psnrhvsm.c這個文件,手動添之,終於編譯全部ok... 不要問我這個文件在哪,我可是java程序員= =自己找吧.