编译OpenNHP


1. WSL环境准备

提示: Windows 10/11下可以通过WSL子系统来运行Linux,详细请见WSL官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/install

  • 【开启WSL功能】 在Win10上,需要首先开启WSL才能使用WSL安装Linux,设置界面请见下图。 Win10上WSL设置
  • 【WSL上安装Linux】 推荐在WSL上安装Ubuntu Linux,通过PowerShell运行以下命令安装:

     wsl --update
     wsl --install -d Ubuntu
    

    如果遇到以下问题,参考:https://blog.csdn.net/weixin_44293949/article/details/121863559

     无法从 'https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json’提取列表分发。无法解析服务器的名称或地址
     Error code: Wsl/WININET_E_NAME_NOT_RESOLVED
    
  • 【WSL环境的IP地址】 在WSL的Linux环境中,运行以下命令获取IP地址:
主机查看IP地址的命令
WSL中Linux主机hostname -I \| awk '{print $1}'
WSL宿主Windows主机ip route show \| grep -i default \| awk '{ print $3}'

2. 系统需求

  • 2.1 Go语言环境:Go 1.18 或以上。安装包下载地址: https://go.dev/dl/
    • Windows与macOS环境下,通过下载的安装程序来安装Go。
    • Linux环境下可以直接通过管理工具安装: :sudo apt install golang
    • 安装成功后,运行命令go version 来查看Go版本号。
    • Windows与macOS环境下,通过下载的安装程序来安装Go。
    • Linux环境下可以直接通过管理工具安装:sudo apt install golang 或者通过以下命令手动安装:
        1. sudo apt-get update
        2. wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
        3. sudo tar -xvf go1.21.0.linux-amd64.tar.gz
        4. sudo mv go /usr/local
        5. export GOROOT=/usr/local/go
        6. export GOPATH=$HOME/go
        7. export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
        8. source ~/.profile
    
    • 安装成功后,运行命令go version 来查看Go版本号。
  • 2.2 GCC环境:
    • Linux与macOSGCC 8.0或以上。
      • 查看GCC版本的命令:gcc -v
      • 安装GCC: sudo apt install build-essential
    • Windows:
      1. 第一步:安装mingw64。mingw64可以通过msys2的包管理工具进行下载。安装msys2系统要求、下载与安装教程见:https://www.msys2.org/install_msys2

      2. 第二步:安装GCC。在msys2的控制台输入命令:

        pacman -S mingw-w64-ucrt-x86_64-gcc
        
      3. 第三步:配置GCC。将GCC工具路径加入Windows的 %PATH% 环境变量。例如:mingw-w64-gcc的安装路径为C:\Program Files\MSYS2\, 则需要运行命令

        setx PATH "%PATH%;C:\Program Files\MSYS2\ucrt64\bin
        

        执行成功之后,打开新的命令行窗口,检查gcc的版本号

        gcc --version
        
    • 提示: Windows下可以通过WSL子系统来运行Linux,详细请见WSL官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/install
      • 推荐在WSL上运行Ubuntu最新版v22,在Windows上的PowerShell运行以下命令安装:
        wsl --install --distribution Ubuntu-22.04
        

3. 编译

  1. 拉取代码仓库

    git clone https://github.com/OpenNHP/opennhp.git
    
  2. Go环境设置

    go env -w GOPROXY="https://goproxy.cn,direct"
    
  3. 编译构建

    • Linux与macOS:运行代码根目录下脚本 make
    • Windows:运行代码根目录下BAT文件 build.bat

4. 结果

编译出来的二进制文件都在代码目录下的release子目录下。

  • NHP-Server的可执行文件和配置文件: release\nhp-server 子目录下
  • NHP-AC的可执行文件和配置文件: release\nhp-ac 子目录下
  • NHP-Agent的可执行文件和配置文件: release\nhp-agent 子目录下
  • 所有二进制文件打包成一个tar文件: release\archive 子目录下