記事ディレクトリ
VNC はリモート グラフィカル デスクトップ プロトコルであり、TigerVNC (Tiger Virtual Network Computing) は VNC プロトコルの実装です。TigerVNC アプリケーションを通じて、クロスプラットフォームのリモート デスクトップ制御を実現できます。TigerVNC プロジェクトのアドレスは次のとおりです:
https://github.com/TigerVNC/tigervnc。
注意すべき点は、TigerVNC の Windows 側はメンテナンスされていないため、使用中に問題が発生する可能性があります。
Windows プラットフォームで TigerVNC プロジェクトを構築する方法は次のとおりです。
Windows プラットフォームでビルドするには、mingw コンパイラを使用する必要があり、mingw のようなコンパイル環境を提供するためにMSYS2を使用することをお勧めします。
MSYS2 をインストールした後、MSYS2-MINGW64 / MSYS2-MINGW32 ターミナルに入り、開発環境を設定します。
開発環境を構成する
1. ミラーソースを設定する
Mingw は開発環境を構成するときにいくつかのソフトウェア パッケージをダウンロードする必要があるため、ダウンロード速度を向上させるために、対応するミラー ソースを更新する必要があります。
アップデート元のアドレス情報はInstallDir\msys64\etc\pacman.dディレクトリにあり、ファイルリストはmirrorlist.mingw32、mirrorlist.mingw64、mirrorlist.msysです。
Mirrorlist.msys ファイルの先頭に次のミラー アドレスを追加します:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
次のミラー アドレスを、mirrorlist.mingw32 ファイルの先頭に追加します:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
次のミラー アドレスを、mirrorlist.mingw64 ファイルの先頭に追加します:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
2. ソース情報を更新する
送信元アドレスが更新されたら、対応する端末で更新コマンドを実行して送信元情報を同期します。
pacman -Syu
3. 対応する依存ライブラリをインストールします。
pacman -Syu
pacman -S make yasm diffutils pkg-config
pacman -S mingw-w64-i686-cmake
pacman -S mingw-w64-i686-fltk
pacman -S mingw-w64-i686-gnutls
pacman -S mingw-w64-i686-gcc
pacman -S mingw-w64-i686-make
pacman -S mingw-w64-i686-pixman
4. コンパイル依存ライブラリを変更する
TigerVNC は、静的コンパイル プロセス中にさまざまなエラーと例外を報告します。エラーは依存ライブラリの問題である場合があります。ここでは、依存ライブラリ ファイルを変更します。ファイル アドレスは、tigervnc\cmake\StaticBuild.cmake です。変更内容は次のとおりです。
# 第68行
set(GNUTLS_LIBRARIES "-Wl,-Bstatic -lgnutls -lpthread -lzstd -lbrotlienc -lbrotlicommon -lbrotlidec")
# 第184行
if(WIN32)
set(STATIC_BASE_LIBRARIES "${STATIC_BASE_LIBRARIES} -lmingw32 -lgcc_eh -lgcc -lmoldname -lmingwex -lmsvcrt -lpthread")
5. コンパイルの実行
# 创建构建目录
cd tigerVNC
mkdir build
cd build
# 指定GNUTLS目录地址 构建方式为静态编译
cmake -G "MinGW Makefiles" -DGNUTLS_INCLUDE_DIR=/mingw64/include -DGNUTLS_LIBRARY=/mingw64/lib/libgnutls.a -DBUILD_STATIC=1 ../
# 进行构建
mingw32-make.exe
プログラムを実行する
TigerVNC によって生成される各アプリケーションの役割:
vncviewer # 是跨平台的TigerVNC客户端 使用FLTK编写
winvnc # 是Windows系统下的tigerVNC的服务端
vncconfig # 用来配置和控制正在运行的VNC
制御側で winvcn を起動し、制御側が来るのを待ちます。その後、制御側で vncviewer を起動し、制御側の IP アドレスを入力してリモート制御を実現します。