本文撰写时间为2021/03/05
编译准备
M1 mac 一台
本文以 homebrew 作为系统包管理,请先确保 brew
命令可以正确使用,并且苹果的 clang 工具也能使用(brew 运行时会提示)。下载过慢请换镜像,比如清华源。
编译需要用到 QT6、golang、等工具,执行以下命令安装:
brew install qt@6 go grpc cmake v2ray openssl
编译 Trojan-go
先下载 Trojan-go 的项目并编译
git clone https://github.com/p4gefau1t/trojan-go
cd trojan-go
make
编译好的内容就在 build
文件夹里
如果 golang 编译下载过慢的话挂代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
编译 Qv2ray
一样先下载
git clone https://github.com/Qv2ray/Qv2ray
cd Qv2ray
目前 QT6 支持还在 dev 分支,所有 qv2ray 相关的内容都需要切换到 dev
git checkout dev# 编译前还需要给出 openssl 的位置,不然会报错找不到,如果你的openssl位置不一样, `brew info openssl` 看一下
export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@1.1/lib/pkgconfig"
mkdir build
cd build
# 由于 macdeployqt 的 bug,执行该命令会引起各种奇怪问题,这里就直接加参数跳过它
cmake -DQV2RAY_QT6=ON -DQV2RAY_AUTO_DEPLOY=OFF -DCMAKE_BUILD_TYPE=Release ..
make all -j8
编译完成后还没完,由于原本 auto deploy 会把内置插件放到包内正确位置,我们跳过了这一步,所以还得手工操作下
mkdir qv2ray.app/Contents/Resources/plugins/
# 我也不知道为啥编译出来的插件库不是 dylib 结尾
cp libQvPlugin-BuiltinProtocolSupport.so qv2ray.app/Contents/Resources/plugins/libQvPlugin-BuiltinProtocolSupport.dylib
cp libQvPlugin-BuiltinSubscriptionSupport.so qv2ray.app/Contents/Resources/plugins/libQvPlugin-BuiltinSubscriptionSupport.dylib
完成后执行 qv2ray.app/Contents/MacOS/qv2ray
或者 open qv2ray.app
再或者直接双击启动应用,启动成功的话配置完 v2ray
核心就已经可以用 v2ray
自带的协议了。
我的核心配置是: /opt/homebrew/bin/v2ray
和 /opt/homebrew/Cellar/v2ray/4.34.0_1/share/v2ray
,各位自行修改
编译 QvPlugin-Trojan-Go
老规矩
git clone https://github.com/Qv2ray/QvPlugin-Trojan-Go
cd QvPlugin-Trojan-Go
git checkout dev
mkdir build
cd build
# 要让插件用 QT6
cmake -DQVPLUGIN_USE_QT6=ON -DCMAKE_BUILD_TYPE=Release ..
make -j8
这时候build目录里会有个 libQvPlugin-TrojanGo.so
,把它拷贝到 qv2ray 的插件目录下,同时把后缀名改成 dylib
。重启 qv2ray,插件列表里就能看到这个 Trojan-Go Plugin
,在设定里把之前第一个编译的 trojan-go
的完成填上就大功告成了!此外,纯 C++ 写的QvPlugin-Trojan
也可以用这个办法编译,还不需要golang
后面的配置请继续参考qv2ray官方文档