go:linkname must refer to declared function or variable

升级到go1.18后编译报错

../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/syscall_darwin.1_13.go:25:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.1_13.go:27:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.1_13.go:40:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.go:28:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.go:43:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.go:59:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.go:75:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.go:90:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.go:105:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.go:121:3: //go:linkname must refer to declared function or variable
../../../../../go/pkg/mod/golang.org/x/sys@v0.0.0-20200323222414-85ca7c5b95cd/unix/zsyscall_darwin_arm64.go:121:3: too many errors

解决办法

go get -u golang.org/x/sys
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`unpack_to_rootfs_cpio`函数主要的功能是将一个 CPIO 归档文件中的文件提取到指定的根文件系统目录中。 下面是该函数的逐行解释: ```python def unpack_to_rootfs_cpio(cpio_file, rootfs_dir): # 读取 CPIO 归档文件并解压缩 with open(cpio_file, 'rb') as f: cpio_data = f.read() cpio = CPIO.from_buffer(cpio_data) ``` 首先,打开 CPIO 归档文件并将其读取到内存中。然后使用 Python 的 `cpio` 模块从内存中的 CPIO 归档数据解析出 `CPIO` 对象。 ```python # 遍历 CPIO 归档内的所有文件 for entry in cpio: # 获取文件路径和文件数据 path = os.path.join(rootfs_dir, entry.name.lstrip('./')) data = entry.data # 如果是一个目录,则创建目录 if entry.is_directory(): os.makedirs(path, exist_ok=True) # 如果是一个普通文件,则写入文件 elif entry.is_file(): with open(path, 'wb') as f: f.write(data) # 如果是一个符号链接,则创建符号链接 elif entry.is_symlink(): os.symlink(entry.linkname, path) # 如果是其他类型的文件,则抛出异常 else: raise ValueError(f"Unknown CPIO file type: {entry.mode}") ``` 然后,遍历 CPIO 归档内的所有文件,对于每个文件,获取文件路径和文件数据。如果是一个目录,则在根文件系统目录中创建该目录。如果是一个普通文件,则将其写入到根文件系统目录中。如果是一个符号链接,则创建符号链接。如果是其他类型的文件,则抛出异常。 在这个函数执行完成后,CPIO 归档文件中的所有文件都被提取到了指定的根文件系统目录中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值