近日準備學習ffmpeg,自然是準備研究下雷神的100行SDL播放器代碼,在進行ffmpeg的VS配置移植時碰到了一些小麻煩,一一道來。由於引入ffmpeg情況比較特殊,除了正常步驟還有別的步驟,詳情請參考 http://blog.sina.com.cn/s/blog_6bcde18101011v2h.html 。筆者以SDL的引入作爲例子
第三方庫一般分爲三個部分,頭文件,靜態鏈接庫與動態鏈接庫,即.h文件,.lib文件和.dll文件,ffmpeg也不例外,首先處理include和lib
SDL的頭文件處於include文件夾中,
靜態和動態鏈接庫均位於lib文件夾
首先將include文件夾拷貝進你的VS項目,並且在VS項目新建一個叫lib的文件夾,將後綴爲.lib的文件拷貝進lib文件夾
接下來就是進行VS的項目配置了
首先,右鍵項目,屬性->配置屬性->C/C++->常規,在常規中找到附加包含目錄,寫上include,即你項目下的include文件夾,你可以選擇你喜歡的名字
同樣,在屬性->配置屬性->鏈接器->常規,在常規中找到附加庫目錄,寫上lib,即你項目下的lib文件夾
接着,在屬性->配置屬性->鏈接器->輸入,在輸入中找到附加依賴項,加上那幾個lib文件的名字
接着將.dll文件放入項目目錄和Debug已經Release目錄就行了
配置搞定了
測試一下SDL
#include "SDL.h"
#include <stdio.h>
int main(int argc, char* argv[])
{
if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1)
{
exit(-1);
}
printf("Init successful!!\n");
SDL_Quit();
printf("SDL quit!!\n");
system("pause");
}
生成時報錯未識別標識符號_main,這個是SDL的老問題,因爲SDL的入口點其實在SDL_main
所以在屬性->配置屬性->鏈接器->高級的選項中找到入口點,設爲SDL_main
同時在屬性->配置屬性->鏈接器->系統的選項中找到子系統選項,設爲 控制檯 (/SUBSYSTEM:CONSOLE)
運行成功,配置完成
C/C++引入第三方庫真是蛋疼