wireguard官方swift代码编译错误的解决办法
流水账:
[ -n "/usr/local/Cellar/go/1.16.3/libexec" ]
mkdir -p "/Users/zhh/Desktop/Build/Intermediates.noindex/WireGuard.build/Debug/wireguard-go-bridge/goroot"
rsync -a --delete --exclude=pkg/obj/go-build "/usr/local/Cellar/go/1.16.3/libexec/" "/Users/zhh/Desktop/Build/Intermediates.noindex/WireGuard.build/Debug/wireguard-go-bridge/goroot/"
cat goruntime-*.diff | patch -p1 -f -N -r- -d "/Users/zhh/Desktop/Build/Intermediates.noindex/WireGuard.build/Debug/wireguard-go-bridge/goroot"
patching file src/runtime/sys_darwin.go
Hunk #1 FAILED at 469.
1 out of 1 hunk FAILED -- saving rejects to file -
patching file src/runtime/sys_darwin_amd64.s
Hunk #1 succeeded at 114 (offset 5 lines).
patching file src/runtime/sys_darwin_arm64.s
Hunk #1 succeeded at 143 (offset 8 lines).
make: *** [/Users/zhh/Desktop/Build/Intermediates.noindex/WireGuard.build/Debug/wireguard-go-bridge/goroot/.prepared] Error 1
Command ExternalBuildToolExecution failed with a nonzero exit code
这个问题的原因是 go的环境配置不对造成的。
修改makefile文件,强制设置REAL_GOROOT,BUILD_GOROOT
REAL_GOROOT := /usr/local/Cellar/go/1.16.3/libexec
BUILD_GOROOT := $(BUILDDIR)/goroot
GOBIN := $(REAL_GOROOT)/bin/go
$(warning $(REAL_GOROOT))
$(warning $(BUILD_GOROOT))
export GOROOT := $(BUILDDIR)/goroot
$(BUILD_GOROOT)/.prepared:
[ -n "$(REAL_GOROOT)" ]
mkdir -p "$(BUILD_GOROOT)"
rsync -a --delete --exclude=pkg/obj/go-build "$(REAL_GOROOT)/" "$(BUILD_GOROOT)/"
touch "$@"
define libwg-go-a
$(BUILDDIR)/libwg-go-$(1).a: export CGO_ENABLED := 1
$(BUILDDIR)/libwg-go-$(1).a: export CGO_CFLAGS := $(CFLAGS_PREFIX) $(ARCH)
$(BUILDDIR)/libwg-go-$(1).a: export CGO_LDFLAGS := $(CFLAGS_PREFIX) $(ARCH)
$(BUILDDIR)/libwg-go-$(1).a: export GOOS := darwin
$(BUILDDIR)/libwg-go-$(1).a: export GOARCH := $(GOARCH_$(1))
$(BUILDDIR)/libwg-go-$(1).a: $(BUILD_GOROOT)/.prepared go.mod
$(GOBIN) build -tags ios -ldflags=-w -trimpath -v -o "$(BUILDDIR)/libwg-go-$(1).a" -buildmode c-archive
rm -f "$(BUILDDIR)/libwg-go-$(1).h"
endef
$(foreach ARCH,$(ARCHS),$(eval $(call libwg-go-a,$(ARCH))))
$(DESTDIR)/wireguard-go-version.h: $(BUILD_GOROOT)/.prepared go.mod
$(GOBIN) list -m golang.zx2c4.com/wireguard | sed -n 's/.*v\([0-9.]*\).*/#define WIREGUARD_GO_VERSION "\1"/p' > "$@"
$(DESTDIR)/libwg-go.a: $(foreach ARCH,$(ARCHS),$(BUILDDIR)/libwg-go-$(ARCH).a)
@mkdir -vp "$(DESTDIR)"
$(LIPO) -create -output "$@" $^
在终端是设置环境变量
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
或者
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn
或者
$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile
Windows
打开你的 PowerShell 并执行
C:\> $env:GO111MODULE = "on"
C:\> $env:GOPROXY = "https://goproxy.cn"
或者
1. 打开“开始”并搜索“env”
2. 选择“编辑系统环境变量”
3. 点击“环境变量…”按钮
4. 在“<你的用户名> 的用户变量”章节下(上半部分)
5. 点击“新建…”按钮
6. 选择“变量名”输入框并输入“GO111MODULE”
7. 选择“变量值”输入框并输入“on”
8. 点击“确定”按钮
9. 点击“新建…”按钮
10. 选择“变量名”输入框并输入“GOPROXY”
11. 选择“变量值”输入框并输入“https://goproxy.cn”
12. 点击“确定”按钮
如果下面的报错
2021-04-12 18:15:29.129793-0700 WireGuard[2426:22357] Unable to add config to keychain: -60005
2021-04-12 18:15:29.134784-0700 WireGuard[2426:22357] Add: Saving configuration failed: Error Domain=NEVPNErrorDomain Code=1 "Missing protocol or protocol has invalid type" UserInfo={NSLocalizedDescription=Missing protocol or protocol has invalid type}
这个问题的原因是你run的target是iOS的, 在macOS上是无法运行iOS的app的, 把启动的target改为for macOS的即可。
wireguard官方swift代码编译错误的解决办法相关推荐
- Impala编译错误及解决办法汇总
Impala编译错误及解决办法汇总 Impala repo里有C++.Java.Python.Bash的代码,编译过程中可能遇到各种问题.这个文章将作为一个汇总,以后每遇到一个编译问题,解决完后都会更 ...
- android.mk 编译32位_C/C++初学者常见编译错误及其解决办法
用户在C/C++集成开发环境(例如 Dev-C++)中编辑了源代码,执行编译之后,常常会因为源代码中存在问题而出现编译错误(它们会显示在编译窗口中).初学者常常会面对这些错误而不知如何处理.本文下面列 ...
- ffmpeg库编译加文字_使用ffmpeg库编译错误及解决办法
一.FFmpeg源代码下载与编译 # wget http://www.ffmpeg.org/releases/ffmpeg-0.5.13.tar.bz2 # tar -jxvf ffmpeg-0.5. ...
- PHP安装编译错误及解决办法
今天搭建LAMP环境是编译PHP时出现的错误汇总. 错误: configure: error: xml2-config not found. Please check your libxml2 ins ...
- php 编译错误,PHP 编译错误及解决办法
./configure的时候出现如下错误: configure: error: xslt-confignot found. Please reinstall the libxslt >= 1.1 ...
- 有关编译嵌入式android的swap空间不够导致的编译错误和解决办法
由于android包括了java的很大一部分组成,而嵌入式开发,编译往往需要考虑内存的多少,而且,很多时候,连开发工具本身也是虚拟机,这就造成编译出现很多问题. 系统; vmware(ubuntu14 ...
- Error:java: 无效的标记 -version 编译错误的解决办法
创建新项目,在启动的时候遇到了 Error:java: 无效的标记: -version 这个报错信息 截图如下: 说是在编译的时候遇到了问题,所以我check了下maven配置,Settings里的 ...
- [Unity]导入插件出现编译错误的解决办法:在工程关闭时重新添加一次插件
刚刚在尝试死亡细胞的像素渲染插件 第一次安装插件的时候,我是把git项目解压到了工程文件夹里面,这样子就出现如图所示的报错 我退出工程重新覆盖一遍,再打开工程,就没有问题了 应该是工程在打开的时候,有 ...
- 18.16 gcc-3.4.5编译错误及解决方法集锦
18.16 gcc-3.4.5编译错误及解决方法集锦 参考文章: (1)18.16 gcc-3.4.5编译错误及解决方法集锦 (2)https://www.cnblogs.com/baixu/p/10 ...
最新文章
- Ubuntu 系统 卸载OpenJDK 8
- int[]到string[]的转换方法 Array.ConvertAll
- Smart Crop,一种切除 PDF 扫描文档白边的新选择(工程篇)
- 2apt-get命令,deb包安装,源码安装
- Mysql查询数据库状态及信息
- c++ list 修改_ggplot2 修改图例的一些操作
- win32获取其它进程变量地址存放的信息
- eclipse 编码设置之BOM丢失
- 在OPPO的开发者大会上,看到了另一个OPPO
- Java虚拟机对内部锁的四种优化方式
- 7代cpu能装虚拟xp系统吗_【精选】减少DCS系统故障的实例与措施
- discuz源代码分析
- PPT插入文本框的方法技巧
- 国内主流云厂商下一代云主机最大可售卖384核
- 广发卡分期可商户分期啦
- [知了堂学习笔记]_牵线Eclipse和Tomcat第一篇 —— 配置Java环境变量安装eclipse
- fastJson字符串与Map,数组,对象,复杂对象之间的转换
- 浙大Python 第4章-9 查询水果价格 (15 分)
- 计算机网络论文 考试吧,2012年11月计算机网络学习心得体会
- 微信小程序 data命名不能大写