C言語を使えて、GStreamerが使えて、GO言語を使えて、CGOが使える環境を作っています。
C言語を使えて、GStreamerが使えて、GO言語を使えて、CGOが使える環境を作っています。
(1)Windowsの方のmsys2とGStreamerのパッケージを削除
Windowsの方のC言語、GStreamerはコンフリクトするので削除しますが、GO言語は、別のタスク(大学の方のシミュレータ)があるので、削除できませんでした。
という訳で、MSYS2の環境を、Windowsの方と切り離して運用するという覚悟ができました。
(2)C:の容量が小さいので、G:\の方にパッケージを分離していたのですが、これをやると、全く動かなくなるので、C:\msys2の配下に勝手に作成される、/c/msys64/home/tomoi/の直下でプログラムの作成をすることにしました。
これ、/usr/local/binの配下に/home/ebataを作るような気持ち悪さがあるのですが、今回は稼動が最優先です。
MSYS2のインストール
- MSYS2公式サイトからインストーラをダウンロードします。
- インストーラを実行し、画面の指示に従ってMSYS2をインストールします。
2. MSYS2の初期設定
- MSYS2ターミナルを起動:
MSYS2 MSYS
ショートカットを使用してMSYS2ターミナルを起動します。 - パッケージデータベースと基本パッケージの更新: 以下のコマンドを順番に実行して、パッケージデータベースと基本パッケージを更新します。
sh
pacman -Syu
初回のアップデートが完了したら、ターミナルを一度閉じて再起動します。
- 再度更新を実行: ターミナルを再起動後、再度以下のコマンドを実行します。
sh
pacman -Syu
3. MinGW-w64のインストール
- MinGW-w64ツールチェインのインストール:
MSYS2 MinGW 64-bit
ショートカットを使用してMSYS2ターミナルを起動し、以下のコマンドを実行します。sh
pacman -S mingw-w64-x86_64-toolchain
これにより、GCC、G++、およびその他の開発ツールがインストールされます。
4. 環境変数の設定
MinGW-w64のバイナリにアクセスするために、環境変数PATH
を設定します。
- ~/.bashrcファイルの編集: MSYS2ターミナルで
~/.bashrc
ファイルを開きます。sh
nano ~/.bashrc
- PATHの設定: 以下の行を追加して保存します。
sh
export PATH="/mingw64/bin:$PATH"
- 設定の反映: 設定を反映させるために、ターミナルを再起動するか、以下のコマンドを実行します。
sh
source ~/.bashrc
5. GStreamerのインストール
- GStreamerのパッケージのインストール:
MSYS2 MinGW 64-bit
ショートカットを使用してMSYS2ターミナルを起動し、以下のコマンドを実行します。sh
pacman -S mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-plugins-base mingw-w64-x86_64-gst-plugins-good mingw-w64-x86_64-gst-plugins-bad mingw-w64-x86_64-gst-plugins-ugly
pacman -S mingw-w64-x86_64-gstreamer mingw-w64-x86_64-gst-plugins-base mingw-w64-x86_64-gst-plugins-good mingw-w64-x86_64-gst-plugins-bad mingw-w64-x86_64-gst-libav
6. 確認とテスト
- GCCの動作確認: GCCが正しくインストールされているか確認します。
sh
gcc --version
- 簡単なCプログラムの作成とコンパイル: 簡単なCプログラムを作成してコンパイルします。
sh
nano test.c
以下の内容を入力します。
c
int main() {
printf("Hello, World!\n");
return 0;
}ファイルを保存してNanoエディタを閉じた後、コンパイルします。
sh
gcc test.c -o test.exe
コンパイルが成功したら、実行します。
sh
./test.exe
- GStreamerの動作確認: GStreamerが正しくインストールされているか確認します。
sh
gst-launch-1.0 --version
簡単なGStreamerパイプラインを実行して動作確認します。
sh
gst-launch-1.0 videotestsrc ! autovideosink
とうぜん 、ここまですんなりできた訳ではありませんが、取り敢えず私が思い出せる程度の情報を載せてあります。
-----
https://github.com/go-gst/go-gst
から、/home/tomoi/go/srcで、 git clone https://github.com/go-gst/go-gst をして、/home/tomoi/go/src/go-gst を作って、
に張ってあったプログラムを、main.goでセーブしたのち、
go run main.go videotestsrc ! glimagesink
で、
と、
が、表われることを確認。
なにがどうなっているのかは、サッパリ分からないが、とりあえず、GoからGstreamerが動いたことは確認できた。
以上
なんか、サラっと書くと自分でも腹たつなぁ。10時間以上はかかったんだけどなぁ