Windows プラットフォームで TigerVNC プロジェクトをビルドする


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 アドレスを入力してリモート制御を実現します。

おすすめ

転載: blog.csdn.net/yang1fei2/article/details/132068936