登录
首页 >  Golang >  Go问答

Golang中无法调用syscall.EpollCreate函数

来源:stackoverflow

时间:2024-02-09 14:27:23 279浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《Golang中无法调用syscall.EpollCreate函数》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

我正在尝试将程序从 c 移植到 go,因此需要使用 syscall 包中的大量内容。

我正在尝试使用 https://pkg.go.dev/syscall#epollcreate,但 vscode 拒绝为我自动完成它或识别它是一个已定义的函数。 fwiw,我在 syscall 包中获得了许多其他内容的自动完成功能。

我的项目使用的是go 1.14。我不确定如何判断 go 的版本是在哪个版本中引入的,所以我想知道这是否是我的问题。

我尝试创建一个使用 go 1.17 的虚拟项目,但仍然没有成功。

我正在 mac 上编写代码,但如果重要的话,它最终会针对 arm linux 进行编译。

那么这是 go 问题还是 vscode 问题?两个都?都不是?

示例虚拟项目:

go.mod

module epoll-noodle

go 1.14

main.go

package main

import (
    "syscall"
)

func main() {
    syscall.EpollCreate(4)
}

正确答案


事实证明,如果您正在为与您自己的平台不同的平台进行开发,则某些功能可能不受支持(例如本例中的 epollcreate,正如 @jimb 所说)。不过,go 扩展确实允许您更改环境变量,因此您可以在 vscode 中解决此问题。在您的扩展设置中,输入如下内容:

{
    "go.toolsEnvVars": {"GOOS" : "linux"}
}

您的项目将为该操作系统构建。

设置文件可以在项目根目录的 .vscode 文件夹中找到。如果没有,您可以转到 vscode 中的 go 扩展并修改一些设置(针对工作区,而不是用户),它会为您创建一个。然后根据需要进行编辑。

另请参阅:https://github.com/microsoft/vscode-go/issues/632

终于介绍完啦!小伙伴们,这篇关于《Golang中无法调用syscall.EpollCreate函数》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>