Clion を使用して FFmpeg ソース コードを読み取る (ジャンプをサポート)

開始アドレスはさらに間違ってしまいます

序文

このソリューションは FFmpeg の読み取りにのみ適しており、設定方法は非常に簡単で、メソッド間のジャンプをサポートできますが、一部のメソッドは設定上の理由により認識されなかったりジャンプしたりするため、気にする場合は入力しないでください。

オプション 1 (単純)

この解決策は非常に簡単で、ほとんどのソース コードを読み取ることができますが、一部のヘッダー ファイルが依然として欠落しているため、一部を表示することができません。

ステップ1

以下に示すように、 Clion で新しい C++ プロジェクトを作成しますFile->New Project->Create

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-l6w0Zhdv-1610869186665)(05_source/source-create1.jpg)]

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-scBpuL0O-1610869186667)(05_source/source-create2.jpg)]

ステップ2

以下に示すように、FFmpeg ソース コードをルート ディレクトリにコピーします。

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-YNeqryyf-1610869186673)(05_source/source-copy.jpg)]

ステップ3

CMakeLists.txt次のようにファイルを記述します。

cmake_minimum_required(VERSION 3.17)
project(SourceFFmpeg)

set(CMAKE_CXX_STANDARD 11)

file(GLOB EX_DIR ./*.cpp ./*.c ./*/*.c ./*/*/*.c ./*/*/*/*.c)
set(INCLUDE_DIR ./ ./*/ ./*/*/ ./*/*/*/ ./*/*/*/*/)

include_directories(${INCLUDE_DIR})

add_executable(SourceFFmpeg ${EX_DIR})

シンプルなビュー

これで完成です。ここではソースコード間のジャンプを見て、いくつかのメソッドが呼び出されています。doc/examplesソースコードが正常にジャンプできるかどうかなどは、サンプルから確認できます。私は次のようにしています。

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-9YAnQnR1-1610869186675)(05_source/source-look.jpg)]

解決策 2 (ソース コードのコンパイルが必要)

解決策 1 では、一部のヘッダー ファイルが欠落しています。

ステップ 1 (計画 1 と同じ)

ステップ 2 (解決策 1 と同じ)

ステップ3

次のように、ソース コードをコンパイルしてダイナミック ライブラリ/スタティック ライブラリを生成します。その目的にはヘッダー ファイルが必要です。生成されたヘッダー ファイルをプロジェクトにコピーします。

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-MzXM5fUe-1610869186676)(05_source/source-head.jpg)]

ステップ4

CMakeLists.txt次のようにファイルを記述します。

cmake_minimum_required(VERSION 3.17)
project(SourceFFmpeg)

set(CMAKE_CXX_STANDARD 11)

include_directories(./include/)

file(GLOB EX_DIR ./*.cpp ./*.c ./*/*.c ./*/*/*.c ./*/*/*/*.c)

add_executable(SourceFFmpeg ${EX_DIR})

ここまでで第二弾の計画も完成しましたので、ご自身でご確認ください。



おすすめ

転載: blog.csdn.net/github_38117599/article/details/112748073