OBS原始碼編譯開發

2021-08-27 03:14:36 字數 2390 閱讀 7872

obs簡介

官方有較詳細的說明文件,但是在實際編譯開發過程中,還是遇到了一些問題。在此記錄下來,以備查閱。  

obs編譯(windows)

準備生成工程

add entry增加依賴庫,qt路徑等,如下:

編譯工程

想除錯可以使用debug或者relwithdebinfo執行程式。

程式編譯完成,可以執行d:\obs\obs-build\obs-studio\build\rundir\release\bin\64bit下obs64.exe。

tip:直接執行d:\obs\obs-build\obs-studio\build\ui\release目錄下的obs.exe,依賴的庫都沒在這個目錄下,所以會報缺失檔案什麼的。使用all build為啟動項,這裡會從rundir下啟動程式的。obs專案在生成後,會把相關檔案拷貝到d:\obs\obs-build\obs-studio\build\rundir\release\bin\64bit下。obs定義了生成後事件:

c:\program files (x86)\cmake\bin\cmake.exe" -dconfig=relwithdebinfo -dfname=obs64.exe -dinput=d:/obs/obs-build/obs-studio/build/ui/relwithdebinfo -doutput=d:/obs/obs-build/obs-studio/build/rundir/relwithdebinfo/bin/64bit -p d:/obs/obs-build/obs-studio/cmake/copy_on_debug_helper.cmake   d:\obs\  obs-build  \  obs-studio  \build\rundir\release\bin\64bit

obs-browser外掛程式

obs-browser是obs-studio的乙個輸入源外掛程式,基於cef開發實現的

編譯cef

cef設定輸入,輸出目錄,configure,再generate。

building obs and obs-browser

cef_root_dir:d:/obs/obs-build/cef_binary_3.2987.1601.gf035232_windows64

build_browser = true 預設是不建立obs-browser的。

use_static_crt = false 設定構建的專案/md,預設是/mt。這個配置之前沒有設定false,導致cef和obs-browser編譯各種問題。

這裡有時候會遇到錯誤如下圖:  

需要把d:\obs\obs-build\cef_binary_3.2987.1601.gf035232_windows64\resources下的所有資源檔案拷貝到obs的rundir目錄下:d:\obs\obs-build\obs-studio\build\rundir\release\obs-plugins\64bit

release版本,需要d:\obs\obs-build\cef_binary_3.2987.1601.gf035232_windows64\release下的檔案拷貝到obs的rundir目錄下:d:\obs\obs-build\obs-studio\build\rundir\release\obs-plugins\64bit (.lib不用拷貝)

libcef.dll依賴libegl.dll和libglesv2這兩個檔案,但是qt也依賴這兩個檔案,他們分別在不同的目錄,且使用的版本不統一。debug程式時,會報錯,把cef下的這兩個檔案統一使用d:\obs\obs-build\obs-studio\build\rundir\release\bin\64bit目錄下的。

網易雲大禮包:

OBS原始碼編譯開發

obs簡介 官方有較詳細的說明文件,但是在實際編譯開發過程中,還是遇到了一些問題。在此記錄下來,以備查閱。obs編譯 windows 準備生成工程 add entry增加依賴庫,qt路徑等,如下 編譯工程 想除錯可以使用debug或者relwithdebinfo執行程式。程式編譯完成,可以執行d o...

OBS原始碼編譯開發

obs簡介 官方有較詳細的說明文件,但是在實際編譯開發過程中,還是遇到了一些問題。在此記錄下來,以備查閱。obs編譯 windows 準備生成工程 add entry增加依賴庫,qt路徑等,如下 編譯工程 想除錯可以使用debug或者relwithdebinfo執行程式。程式編譯完成,可以執行d o...

OBS原始碼閱讀

然後通過load debug privilege函式,修改了下程序的許可權,呼叫base set crash handler設定全域性的crash handler,crash param 設定def log handler函式作為日誌列印函式 接下來的判斷命令列引數,一般上命令列引數argc都為1,...